Interprozesskommunikation in Android

  • Antworten:3
Hans Peter
  • Forum-Beiträge: 13

26.03.2012, 13:04:57 via Website

Hi,

ich baschäftige mich gerade mit der IPC in Android. Dabei habe ich mein jetziges Problem mit einer extra Klasse die Parcelable implementiert umgesetzt. Da ich aber mehere Activities habe, ist der Weg, in einer neuen Activity das Objekt jedesmal neu anzulegen und aus dem Parcel die Informationen zu bekommen recht umständlich. Deswegen meine Frage: Gibt es eine Möglichkeit mein Objekt (Datenspeicher) übergreifend anzulegen um so von jeder Activity z.B. mit getter und setter Methoden darauf zugreifen zu können. Mir geht es darum nicht jedesmal ein neues Objekt anlegen zu müssen. Ich schon daran gedacht meine Klasse als Service anzulegen um so von jeder Activity drauf zugreifen zu können ... denke aber das ist nicht der richtige Weg?!?

Würde mich freuen eure Ansätze zu erfahren.

Grüße

Antworten
Markus B.
  • Forum-Beiträge: 636

26.03.2012, 21:42:59 via Website

Hallo,
das kommt auf die Daten, welche dein Objekt enthält und was du mit dem Objekt machst.
Wenn es z.B. Daten aus der Datenbank sind und du diese nur einmal beim Starten der App lädst bietet sich das Singelton Pattern an.
Das erzeugst du dann einmal und kannst immer wieder darauf zugreifen. Hier musst du dann nur ein bissel beim Anpassen von Werten achten, da du unter Umständen Sachen überschreiben kannst.
Wenn es nicht ganz das ist was du suchst brauche ich / wir mehr Input :)

Gruß,
Markus

Antworten
Smobber.com
  • Forum-Beiträge: 7

28.03.2012, 13:08:23 via Website

Wir bei uns haben eher schlechte Erfahrungen mit Singletons etc gemacht, da wenn man wirklich verschiedene Prozesse definiert, selbst die static Variable nicht über die ganze Laufzeit vorhanden ist.
Von daher haben wir auf den Application Context gesetzt. Einfach eine Klasse anlegen die gleich heißt wie deine App und diese ins Main Paket legen, dann im Manifest noch eintragen, fertig. Die Klasse wird einmal beim Programstart intitialisiert und kann von überall aufgegriffen werden. Beispiel gibts hier ab Post 2:

http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

28.03.2012, 13:21:29 via Website

Smobber.com
Wir bei uns haben eher schlechte Erfahrungen mit Singletons etc gemacht, da wenn man wirklich verschiedene Prozesse definiert, selbst die static Variable nicht über die ganze Laufzeit vorhanden ist.
Von daher haben wir auf den Application Context gesetzt. Einfach eine Klasse anlegen die gleich heißt wie deine App und diese ins Main Paket legen, dann im Manifest noch eintragen, fertig. Die Klasse wird einmal beim Programstart intitialisiert und kann von überall aufgegriffen werden. Beispiel gibts hier ab Post 2:

http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables
Wenn man sich da mal ein bisschen ins Thema einliest, wird man feststellen, dass das ebenfalls ein Singleton ist ;)
Ist halt nur schöner integriert.

Antworten