C2DM - Wie am besten umsetzen?

  • 3 Antworten
  • Neuester Beitrag
Diskutiere C2DM - Wie am besten umsetzen? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
L

Lightstorm

Neues Mitglied
Ich überlege wie ich Push Notifications auf Android am besten umsetzen kann. Ich möchte das meine App Push Nachrichten empfängt sobald das Gerät eingeschaltet ist.
Dafür habe ich einen BroadcastReceiver, der bei der Action "android.intent.action.BOOT_COMPLETED" aus dem BroadcastReceiver aus einen Service startet.

Code:
context.startService(new Intent(context, C2DM.class));
C2DM.class sieht so aus:
https://github.com/twuni/android-c2...wuni/android/c2dm/service/MessageService.java

Und bei der Action "android.intent.action.ACTION_SHUTDOWN" stoppe ich den Service:
Code:
context.stopService(new Intent(context, C2DM.class));
Das funktioniert insofern das der Service startet und ich eine Registration ID bekomme.
Beim herunterfahren des Geräts, wird dann der Code zum stoppen des Service ausgeführt, aber ich bekomme keine Unregistered Meldung von C2DM.
Getestet mit dem Emulator 2.2.


Außerdem bin ich etwas verwirrt, wozu dient die Abmeldung genau und ist sie Pflicht?
 
S

swordi

Lexikon
hmm das ganze ist ja bereits per default so implementiert

wenn der user deine app startet, dann registrierst du einfach das gerät.

wenn du jetzt push notifications verschickst, kommen die auf sein gerät. ist es ausgeschalten, kommen sie erst auf das gerät, wenn er es wieder gestartet hat.

denke also du machst es dir unnötig kompliziert
 
L

Lightstorm

Neues Mitglied
Hm du hast Recht, ich dachte man muss das immer erneut registrieren (auch nach dem neustarten des Geräts) wenn man Push Nachrichten erhalten möchte.


Bliebe noch die Frage mit der Abmeldung. Wozu ist das genau und wann sollte man es abmelden? bzw. ist es pflicht?
 
S

swordi

Lexikon
pflicht ist es nicht, aber es ist sicher gut, dem user eine option zu geben die notifications auszuschalten. manche empfinden es als lästig.

evtl bei der deinstallation der app dann abmelden ( denke dazu gibts nen broadcast )