Klären Aktivität Daten Absicht kommt zufällig zurück, warum?

8

Ich habe eine Medienanwendung, die die Wiedergabe startet, wenn die Absicht an die Spieleraktivität mit den folgenden Absichtsextras gesendet wird; Daten "Pfad zur Musik" und geben Sie "Mime / Audio-Format" ein.

Ich hebe die Absichtsdaten bei der Spieleraktivität auf, um die Wiedergabe zu starten, und entferne die überzähligen Extras aus der Absicht, um zu vermeiden, dass die gleiche Anfrage erneut ausgeführt wird, nachdem der Bildschirm oder die Aktivität wieder in den Vordergrund gebracht wurde. p>

So verarbeite ich eine Absicht:

%Vor%

Das Problem, das ich habe, ist, dass ich zufällig und selten die Anwendung öffne und wenn es bei der Spieleraktivität weitergeht, wird die Absicht die vorherigen zusätzlichen Daten enthalten und anfangen zu spielen ... Das ist mir lästig und gut meine Benutzer ...

Irgendjemand hat irgendwelche Ideen, was ist der beste Weg, um die Intents Daten zu löschen? Einige Gründe, warum der ActivityManager diese Daten gespeichert hat ...?

Danke!

-Jona

    
Jona 17.02.2011, 17:05
quelle

4 Antworten

4

Meine Lösung:

%Vor%

Und das löscht die zusätzlichen Daten.

    
Devil 05.09.2011 11:31
quelle
0

Unklar, aber haben Sie versucht, die Flags FLAG_ACTIVITY_RESET_TASK_IF_NEEDED, FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET oder FLAG_ACTIVITY_NEW_TASK zu verwenden?

    
DJC 17.02.2011 18:18
quelle
0

Versuchen Sie beim Abrufen der Daten und Zeichenketten diese als Extras zu übergeben, anstatt getDataString() und getType() :

zu verwenden %Vor%

Vorher müssen Sie die Typen als Extras übergeben:

%Vor%     
John Leehey 17.02.2011 19:13
quelle
0

Ich habe das gleiche Problem erlebt. In meinem Fall war das Problem, dass ich manchmal zwei Absichten beim Start der Anwendung bekam: eine in onCreate und dann eine weitere in onNewIntent. Die Absicht von onCreate hatte einige wirklich alte Daten beigefügt (die gemäß den Dokumenten gelöscht werden sollten), während der onNewIntent keine zusätzlichen Daten hatte (der richtige Fall).

Meine Lösung bestand darin, die letzte eingehende Absicht aufzuzeichnen (vorausgesetzt, dass die letzte Absicht die richtige ist) und dann die Absicht in onResume zu behandeln, da diese Methode nach onCreate und onNewIntent aufgerufen wird. So:

%Vor%     
perja 20.05.2011 11:05
quelle

Tags und Links