Pourquoi implémenter onDestroy () s’il n’est pas garanti qu’il soit appelé?

Selon le cycle d’activité Android, le seul rappel garanti à être appelé (si une activité quitte l’état en cours d’exécution, ce qui est généralement attendu) est onPause() .

Donc, je dois supposer qu’il existe des scénarios dans lesquels il est logique d’implémenter onStop() et onDestroy() bien qu’ils ne soient pas vraiment garantis pour être appelés.

Je comprends que onStop() devrait être implémenté lorsqu’il est possible pour une activité de retourner à l’état Running via l’état Stopped (pourquoi cela ferait-il cela au lieu de retourner directement est une question différente).

Mais le besoin de onDestroy() , quand je peux placer tout le nettoyage / sauvegarde d’état dans onPause() , n’est pas clair pour moi.

Pouvez-vous décrire une situation d’application réelle (c’est-à-dire ne pas faire une analogie avec conduire une voiture, etc.) dans laquelle il serait judicieux de mettre en œuvre onDestroy() ?

    onDestroy sera appelé si vous appelez explicitement finish (); toi même.

    Votre activité principale appelle startActivityForResult sur une activité de carte.

    Activité cartographique avec un LocationListener, l’utilisateur clique sur la carte et sélectionne par exemple un restaurant local.

    L’activité met ensuite en place des extras à renvoyer à votre activité principale, elle appelle ensuite explicitement finish (); sur lui-même et dans onDestroy tue LocationListener et les autres variables que vous avez invoquées.

    Je viens de trouver ça dans les docs

    onDestroy () = L’appel final que vous recevez avant que votre activité ne soit détruite. Cela peut se produire soit parce que l’activité se termine (quelqu’un appelé finish () ou parce que le système détruit temporairement cette instance de l’activité pour économiser de l’espace. Vous pouvez distinguer ces deux scénarios avec la méthode isFinishing ().

    Pouvez-vous décrire une situation d’application réelle (c’est-à-dire ne pas faire une analogie avec conduire une voiture, etc.) dans laquelle il serait judicieux de mettre en œuvre onDestroy ()?

    Lorsque vous souhaitez capturer un changement de configuration. Tout est dans le SDK: http://developer.android.com/reference/android/app/Activity.html