onDestroy() wird nicht aufgerufen nach dieser.beenden()
Frage ich mich, warum das Motorola Milestone mit 2.1-update1 verhält sich anders als die Emulator oder z.B. beim Nexus One. Ich bin versucht zu beenden meine app mit:
@Override
protected void onPause() {
if(mayDestroyActivity) this.finish();
super.onPause();
}
Dieser funktioniert gut, die entweder auf einem Emulator oder Nexus One. onDestroy()
aufgerufen wird, wird sofort nach onPause()
und onStop
. Aber nicht für den Meilenstein. Stattdessen onDestroy()
wird aufgerufen, wenn eine andere Aktivität gestartet wird. Seinen Abschnitt im Manifest sieht wie folgt aus:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/questionnaire_item"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<category android:name="android.intent.category.OPENABLE" />
</intent-filter>
</activity>
Hat jemand einen Tipp? Meine app hängt beim verlassen ordnungsgemäß, da Speichere ich alle Fortschritte in onDestroy()
Dank,
Steff
InformationsquelleAutor stfn | 2010-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Benutzer das Programm beendet, um den home-Bildschirm das muss nicht bedeuten, dass die app zu verlassen. In den meisten der Zeit, es geben eine bessere user experience, wenn die app geht nur um den hintergrund. Versuchen Sie, auf die Sie sich verlassen saveInstanceState und onPause.
Verlassen einer app ist gesehen als schlechte Praxis in der android-Welt, mit einem Handy mit einem guten system für true multitouch-bessere user experience, wenn die app läuft nach dem drücken der home-Bildschirm.
InformationsquelleAutor Janusz
Du etwas falsch. Dies ist, was der Doc sagt:
http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29
Es gibt keine Möglichkeit zu tun, der falsche Ansatz. "Es gibt Situationen, in denen das system einfach zu töten die Aktivität der hosting-Prozess, ohne den Aufruf dieser Methode", ist eine Aussage sollte man wörtlich nehmen.
Du bist wieder in Ordnung. Ich zog alles an onPause(). Als gut funktioniert. Dank
vielen Dank für die Erwähnung onPause(). Ich hatte auch dieses Problem und zog finish() onStop() , onPause() und jetzt onDestroy() aufgerufen wird.
InformationsquelleAutor Erich Kitzmueller
Sollten Sie verwenden
onSaveInstanceState
überprüfen diese link.InformationsquelleAutor Macarse