Ich habe eine Verwirrung, was in , onStop
und onSaveInstanceState
gehen soll. Zum Beispiel, sagen die Android docs dass für -android - Daten in onPause, onStop oder onSaveInstanceState
gespeicherte Änderungen Commit, aber nur, wenn Nutzer diese Änderungen erwarten dauerhaft gespeichert werden, wenn sie (wie ein Entwurf E-Mail) zu verlassen.
Für onStop
-
Sie sollten OnStop() verwenden, größer, mehr CPU-intensive Abstellzeit Operationen auszuführen, wie zum Beispiel Informationen in eine Datenbank zu schreiben.
Für onSaveInstanceState
Ihre Aktivität könnte mehr Statusinformationen, die Sie, wie Elementvariablen wiederherstellen möchten, dass der Benutzer den Fortschritt in der Aktivität zu verfolgen.
Ist es nicht wahr, dass diese drei Dinge grundsätzlich darauf hinweisen, Informationen wie ein Formular oder eine E-Mail zu speichern? Dann in welcher Methode sollte es gespeichert werden?
'onStop()' wird garantiert seit Honeycomb (3.0) aufgerufen, was 96,8% der Android-Geräte ab Januar 2016 ausmacht. Also bevorzuge ich 'onStop()' über 'onPause()' zum Speichern von Daten jetzt. –
@VickyChijwani Vom Standpunkt der Softwareentwicklung aus ist _preferring_ 'onStop()' über 'onPause()' nicht akzeptabel, es sei denn, Sie benötigen ausdrücklich Android 3.0 in den Metadaten Ihrer App (die Sie nicht erwähnen). –
Richtig, ich mache meine Apps für Android 3.0 und höher, sollte das erwähnt haben.Der andere (diskutierbare) Grund, warum ich 'onStop()' bevorzuge, liegt an dieser Zeile in der ['onPause()' docs] (http://developer.android.com/reference/android/app/Activity.html#onPause % 28% 29): "Wenn Aktivität B vor Aktivität A gestartet wird, wird ... B erst erstellt, wenn A 'onPause()' zurückkehrt, also stellen Sie sicher, dass Sie hier nichts Langes tun. " Natürlich sind die Lebenszyklusdokumente insgesamt noch ziemlich verwirrend, daher ist dies nicht schlüssig. –