2010-12-15 24 views
5

Ich habe mit den Staaten den ganzen Tag versucht, herauszufinden, warum, wenn ich den Netzschalter drücken, um den Sperrbildschirm zu öffnen, verliert meine App den Fokus und ruft es onStop() (wie es soll) aber dann ruft es den onStart() erneut auf, bevor der Bildschirm ausgeht. Dies verursacht ein Problem, da einige Sounds in meiner App (und vermutlich auch andere Sachen) wieder abgespielt werden, während der Lockscreen aktiv ist.Android, App neu gestartet, nachdem Sperrbildschirm gestartet

Wie kann ich sicherstellen, dass es richtig Hintergrund ist und gestoppt wird, wenn der Lockscreen aktiv ist?

Antwort

7

Ich konfrontiert dieses genaue Problem vor nicht allzu langer Zeit. In AndroidManifest.xml, stellen Sie sicher, dass Sie diese:

android: configChanges = "keyboardHidden | Orientierung"

Dies wird Ihre Aktivität verhindern, dass zur Laufzeit 'Konfigurationsänderungen' neu gestartet werden. See handling the configuration change yourself. Auf diese Weise wird Ihre App auf Ereignisse warten, die einen Neustart verursachen - wie Ausrichtung und Änderungen der Tastatursichtbarkeit - und diese in Ihrer Aktivität behandeln.

Es gibt auch eine ganz ähnliche Frage SO hier: Activity restart on rotation Android

+1

Du bist ein Lebensretter Dank! Ich sah diese Option heute Morgen, als ich mein Fenster mit Problemen beim Orientierungsverlust sah und es ignorierte. Danke noch einmal! – Hamid

+1

Zitat aus der verknüpften Dokumentation: "Diese Technik sollte als letzter Ausweg betrachtet werden und wird für die meisten Anwendungen nicht empfohlen." – CommonsWare

+0

Die Art meiner Anwendung bedeutet, dass sie immer in der Landschaft sein sollte, unabhängig von anderen Faktoren und ohne Ausnahme. Daher denke ich, dass es eine akzeptable Lösung ist, und hilft mir tatsächlich, ein sekundäres Problem zu lösen, indem ich meine Anwendung in der Landschaft selbst zwischen Aktivitätsschaltern sperre. – Hamid

Verwandte Themen