Secondo Android Activity Lifecycle, l'unica callback garantita per essere chiamata (se un'attività lascia lo stato di esecuzione, che in genere è previsto) è onPause()
.Perché implementare onDestroy() se non è garantito il richiamo?
Quindi, devo presumere che ci sono scenari in cui ha senso per implementare onStop()
e onDestroy()
anche se non sono in realtà garantito di essere chiamato.
Capisco che onStop()
debba essere implementato quando è possibile che un'attività ritorni allo stato di esecuzione tramite lo stato Interrotto (perché dovrebbe farlo invece di restituire direttamente è una domanda diversa).
Ma la necessità di onDestroy()
, quando riesco a inserire tutti i cleanup/state-saving in onPause()
, non è chiara.
Puoi descrivere una situazione di app reale (cioè non analogica alla guida di un'auto, ecc.) In cui avrebbe senso implementare onDestroy()
?
Perché in circostanze normali, verrà chiamato onDestroy(). È solo che non è _garantito_ essere chiamato. Ad esempio, se il tuo processo viene ucciso dal oom killer. – Falmarri
@Falmarri Ma un'app ben scritta dovrebbe essere progettata per lo scenario peggiore. Stai implicando un miglioramento delle prestazioni in circostanze normali? – uTubeFan
Perché stai usando quel diagramma (2008 !?) invece di [quello ufficiale] (http://developer.android.com/images/activity_lifecycle.png)? Questa è una cosa che è cambiata un bel po 'dal 1.5. – dmon