Figure 1 - De nombreux zombies ont été tués lors de la recherche de cette réponse
Il n'est pas recommandé de tuer un processus de machine virtuelle Java d'une application Android au niveau du système d'exploitation. Malheureusement, c'est exactement ce que fait la fenêtre de périphérique eclipse "stop", tout comme System.exit () et la commande shell "kill".
Cela subvertit les méthodes normales du cycle de vie des applications telles que onStop (), onDestroy () et finalize ().
De nombreuses applications nécessitent ces méthodes pour une sortie gracieuse (par exemple, si elles utilisent des objets système tels que Sensor, MediaPlayer, Equalizer, Visualizer, etc.).
Ces objets système traînent avec des poignées de mort zombie sur les ressources système si release () n'est pas appelé explicitement pendant ces méthodes de cycle de vie. Voir fig. 1 ci-dessus. Cela peut empêcher une application de redémarrer et même nécessiter un redémarrage. C'est l'aspect ingrat.
La seule solution est de vous assurer de toujours quitter proprement votre application avec un appel à onStop () ou onDestroy () ou au moins finalize (). Le débogueur fait cela, tout comme le système d'exploitation à l'arrêt.
Vous pouvez configurer votre application pour intercepter les événements SIG_HUP afin de forcer une sortie gracieuse de la ligne de commande.
Le seul moment où vous tueriez la VM de l'application est dans l'état ANR (déjà un zombie). Les ANR doivent être corrigés. Ne déployez jamais une application pouvant entrer dans cet état. C'est extrêmement impoli.
Vous pouvez utiliser Google Analytics et le Play Store pour les surveiller lors du déploiement. Vous ne voulez pas que les utilisateurs en colère donnent des critiques ANR à une seule étoile après avoir redémarré à cause de votre application zombie. Très mauvais.
N'oubliez pas qu'Android est Linux: traitez-le comme un vrai système d'exploitation et respectez le cycle de vie de l'application, sinon vous devrez sûrement faire face à la redoutable Apocalypse Zombie.
PS: Si vous n'aimez pas l'analogie des zombies, qu'en est-il de Fantasia?