Figura 1 - Muitos zumbis foram mortos durante a pesquisa desta resposta
Não é recomendado matar um processo Java VM de aplicativo Android no nível do sistema operacional. Infelizmente, isso é exatamente o que a janela do dispositivo eclipse "stop" faz, assim como System.exit () e o comando shell "kill".
Isso subverte os métodos normais de ciclo de vida do aplicativo, como onStop (), onDestroy () e finalize ().
Muitos aplicativos exigem esses métodos para uma saída normal (por exemplo, se eles usam objetos do sistema como Sensor, MediaPlayer, Equalizer, Visualizer, etc).
Esses objetos do sistema ficam por aí com alças mortais de zumbis nos recursos do sistema se release () não for chamado explicitamente durante esses métodos de ciclo de vida. Veja a fig. 1 acima. Isso pode impedir que um aplicativo seja reiniciado e até mesmo exigir uma reinicialização. Esse é o aspecto desagradável.
A única solução é garantir que você sempre saia do aplicativo de forma limpa com uma chamada para onStop () ou onDestroy () ou pelo menos finalize (). O depurador faz isso, assim como o sistema operacional ao desligar.
Você pode configurar seu aplicativo para interceptar eventos SIG_HUP para forçar uma saída normal da linha de comando.
A única vez que você mataria a VM do aplicativo é no estado ANR (já um zumbi). ANRs devem ser corrigidos. Nunca implante um aplicativo que pode entrar neste estado. É extremamente rude.
Você pode usar o Google Analytics e a Play Store para monitorar a implantação. Você não quer que usuários irritados dêem avaliações de ANR com estrela única após ter que reiniciar devido ao seu aplicativo zumbi. Muito mal.
Lembre-se de que Android é Linux: trate-o como um sistema operacional real e respeite o ciclo de vida do aplicativo, caso contrário, você certamente enfrentará o temido Apocalipse Zumbi.
PS: Se você não gosta da analogia do zumbi, que tal Fantasia?