Ich verliere die Kontrolle der Kontrolle von Android, wenn ich die Anwendung wieder aufnehme
Frage
Grundsätzlich mache ich im Hintergrund der App eine Flash -Datei (Musik spielen) mit WebView und wenn ich die Musik stoppen möchte, lade ich nur "über: leer".
Ich möchte die Flash -Datei (Musik) aufführen, wenn meine App pausiert wird (was bisher gut funktioniert). Das Problem ist, wenn die App wieder aufgenommen wird. Wenn Sie die Pause -Taste drücken Sound hört nicht auf
Die einzige Lösung, die ich fand, war es, den Prozess zu töten und die App neu zu starten, aber das ist nicht praktisch. Jede Vorstellung davon, wie man bei der Wiederaufnahme der App noch dieselbe Webview verwenden kann?
UPDATE: Ich schätze, ich war nicht klar genug, ich habe ein WebView -Widget, das als "Gone" angegeben ist. Ich brauche nur das Audioformular die Flash -Datei, die ich in der WebView ausführe, also lädt die Schaltfläche "abspielen" eine URL, die das Flash enthält Datei (so hört der Benutzer nur Musik und bemerkt nicht, dass ich ein WebView verwende), wenn ich die Back/Home -Taste drücke, hört die Musik nicht auf (ich mag es so), aber wenn ich zurück gehe und Drücken Sie erneut auf das Spiel. Es wird eine weitere URL in einer neuen Seite geladen. Sie erhalten Doppelmusik
Lösung
Dafür gibt es einige mögliche Ursachen. Man ist einfach, dass mehrere Instanzen Ihrer Aktivität erstellt werden. Angenommen, Sie wollen das nicht, fügen Sie hinzu android:launchMode="singleTask"
oder android:launchMode="singleInstance"
zu deiner Haupt <activity>
in Androidmanifest.xml. Weitere Informationen hier:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
Wenn das nicht hilft, besteht eine andere Möglichkeit darin, dass Ihre Anwendung eine neue Instanz des WebView erstellt - entweder weil sich der entsprechende Code am falschen Ort befindet (zB, z. B. onStart()
) oder weil die App tatsächlich von Android zerstört und neu erstellt wurde, anstatt in der Pause und wieder aufgenommen zu werden-und der alte Webview-Thread hängt immer noch aus irgendeinem Grund herum. Weitere Informationen (z. B. Code -Beispiele) wären hilfreich, um das Problem zu identifizieren, wenn dies der Fall ist.