startet eine asynctask von einem Broadcast-Empfänger

8

Ich möchte wissen, ob das Starten einer asynctask von einem Rundfunkempfänger als eine schlechte Praxis angesehen wird? Ich habe mich im Grunde mit dem C2DM-Server von Google registriert und dann, wenn ich den registrierten Empfänger abhöre, möchte ich ihn an meinen Server senden.

Was ist der beste Weg, dies zu erreichen?

    
Hades 26.10.2011, 08:34
quelle

2 Antworten

18

Ja, das ist eine schlechte Praxis. Wenn Sie AsyncTask von BroadcastReceiver starten, kann Android Ihren Prozess beenden, wenn onReceive() zurückgegeben wird und keine anderen aktiven Komponenten ausgeführt werden.

Der richtige Weg wäre, Service von BroadcastReceiver zu starten. Und dieses Service sollte AsyncTask verwalten. Auf diese Weise wird Android über die aktive Komponente informiert, und Android wird es nicht vorzeitig beenden (es sei denn, andere kritische Bedingungen treten auf, wie nicht genügend Speicherbedingungen).

    
inazaruk 26.10.2011, 08:47
quelle
2

Beginnen Sie mit Honeycomb und rufen Sie goAsync () , und dann haben Sie 10 Sekunden oder so, um Ihre Arbeit asynchron zu erledigen.

Beispiel für die Verwendung kann hier angezeigt werden.

    
android developer 17.05.2014 16:32
quelle

Tags und Links