Ihre Aktivität könnte beim Drücken der Home-Taste zerstört werden, wenn das System eingeschränkt ist und festgestellt hat, dass einige Ressourcen freigegeben werden müssen. Die Dokumentation besagt, dass onDestroy()
aufgerufen werden kann, wenn:
Dies kann entweder geschehen, weil die Aktivität beendet wird (jemand namens finish ()) oder weil das System diese Instanz der Aktivität vorübergehend platzsparend zerstört.Sie können mit der isFinishing () -Methode zwischen diesen beiden Szenarien unterscheiden .
Beachten Sie außerdem, dass das System kill
Ihres Programms aufrufen kann, ohne onDestroy()
aufzurufen, nachdem onStop()
aufgerufen wurde. Daher sollte jeder Bereinigungs- / Datenpersistenzcode in onPause()
oder onStop()
enthalten sein.
Überprüfen Sie auch, dass Sie das android: noHistory-Flag in Ihrem Manifest für die Aktivität nicht verwenden
Dokumentation: android: noHistory Gibt an, ob die Aktivität aus dem Aktivitätsstapel entfernt und beendet werden soll (die Methode finish () wird aufgerufen), wenn der Benutzer nicht mehr auf dem Bildschirm sichtbar ist
Nun, es hängt von vielen Faktoren ab. Wenn dieses Problem auf Android 3.2 + -Geräten auftritt, sollten Sie die Eigenschaft screenSize zu android: configChanges
hinzufügen %Vor%Außerdem fügen Sie Ihrer Launcher-Aktivität auch android: launchMode="singleTop" hinzu. Beachten Sie, dass Sie Android SDK 15 oder höher als Ziel verwenden müssen. Ihre App funktioniert jedoch auch auf älteren Geräten. Hoffe, das hilft.
Tags und Links android android-activity ondestroy