Ho una confusione su cosa dovrebbe andare in , onStop
e onSaveInstanceState
. Ad esempio, i documenti dicono che Android Per -android - dati memorizzati in onPause, onStop o onSaveInstanceState
Commit modifiche non salvate, ma solo se gli utenti si aspettano tali modifiche siano salvate in modo permanente quando escono (come ad esempio un progetto di e-mail).
Per onStop
-
si dovrebbe usare onStop() per eseguire, più la CPU più grandi operazioni di intercettazione verso il basso, come ad esempio la scrittura di informazioni in un database.
Per onSaveInstanceState
vostra attività potrebbe avere ulteriori informazioni sullo stato che si desidera ripristinare, come ad esempio le variabili membro che traccia i progressi dell'utente nell'attività.
Non è vero che queste tre cose puntano fondamentalmente alla memorizzazione di informazioni come di un modulo o di un'e-mail? Quindi in quale metodo dovrebbe essere salvato?
'onStop()' è garantito per essere chiamato da Honeycomb (3.0), che rappresenta il 96,8% dei dispositivi Android a partire da gennaio 2016. Quindi preferisco usare 'onStop()' su 'onPause()' per salvare i dati adesso. –
@VickyChijwani Da un punto di vista dell'ingegneria del software, _preferring_ 'onStop()' su 'onPause()' non è accettabile, a meno che non sia _require_ Android 3.0 esplicitamente nei metadati della tua app (che non menzioni). –
Giusto, faccio le mie app per Android 3.0 e versioni successive, avrei dovuto dirlo.L'altra ragione (discutibile) che preferisco 'onStop()' è a causa di questa riga nei ['onPause()' docs] (http://developer.android.com/reference/android/app/Activity.html#onPause % 28% 29): "Quando l'attività B viene lanciata di fronte all'attività A, ... B non verrà creata fino a quando non viene restituito A 'onPause()', quindi assicurati di non fare nulla di strano qui. " Naturalmente, i documenti del ciclo di vita nel loro complesso sono ancora piuttosto confusi, quindi questo non è decisivo. –