Eine meiner Aktivitäten startet eine AsyncTask
und fügt dem Benachrichtigungsbereich eine fortlaufende Benachrichtigung hinzu. Diese Benachrichtigung erhält Updates von innerhalb der AsyncTask
.Warum löst ein PendingIntent onCreate aus, obwohl FLAG_NO_CREATE gesetzt ist
Ich tat dies, damit die Benutzer die Aktivität mit der Home-Schaltfläche verlassen können und während eines langen laufenden Vorgangs weiterhin Fortschrittsupdates erhalten.
Durch Klicken auf die Benachrichtigung sollte der Benutzer zu dieser Aktivität zurückkehren. Das Problem ist, dass, egal was, scheint es, dass die alte Aktivität nie wieder verwendet wird, sondern instanziiert neue (während die AsyncTask
noch läuft). Die Methode onCreate
dieser Aktivität wird jedes Mal aufgerufen, wenn auf die Benachrichtigung geklickt wird.
Ich habe versucht mit den FLAG_NO_CREATE
und FLAG_UPDATE_CURRENT
Optionen, aber es macht keinen Unterschied.
Wie ist der richtige Umgang mit dieser Situation? Ich entwickle für API-Ebene 4.
Die Android-Dokumente weisen eindeutig darauf hin, dass mit dem Flag 'FLAG_NO_CREATE' keine neue Aktivität erstellt wird. Aber das ist was passiert, so dass das den Mythos hier nicht wirklich beantwortet ;-) – Leo
Sie lesen es falsch. Diese Flagge ist nicht zum Starten von Aktivitäten gedacht. 'Flag zur Verwendung mit getActivity (Kontext, int, Intent, int), getBroadcast (Kontext, int, Intent, int) und getService (Kontext, int, Intent, int): Wenn der beschriebene PendingIntent noch nicht existiert, dann einfach gib null zurück, anstatt es zu erstellen. ' – Falmarri