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
Versuchen Sie beim Abrufen der Daten und Zeichenketten diese als Extras zu übergeben, anstatt getDataString()
und getType()
:
Vorher müssen Sie die Typen als Extras übergeben:
%Vor%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%Tags und Links android