Gambar 1 - Banyak Zombie terbunuh selama penelitian Jawaban ini
Membunuh aplikasi Android, proses Java VM di tingkat OS tidak disarankan. Sayangnya, inilah yang dilakukan "stop" jendela perangkat eclipse, seperti halnya System.exit () dan perintah shell "kill".
Ini merongrong metode siklus hidup aplikasi normal seperti onStop (), onDestroy (), dan finalize ().
Banyak aplikasi memerlukan metode ini untuk keluar dengan lancar (misalnya jika mereka menggunakan objek sistem seperti Sensor, MediaPlayer, Equalizer, Visualizer, dll).
Objek sistem ini berkeliaran dengan pegangan kematian zombie pada sumber daya sistem jika release () tidak dipanggil secara eksplisit selama metode siklus hidup ini. Lihat gbr. 1 di atas. Ini dapat mencegah aplikasi memulai ulang, dan bahkan memerlukan boot ulang. Itu adalah aspek yang tidak bisa dilacak.
Satu-satunya solusi adalah memastikan Anda selalu keluar dari aplikasi secara bersih dengan panggilan ke onStop () atau onDestroy () atau setidaknya finalize (). Debugger melakukan ini, seperti halnya OS saat dimatikan.
Anda dapat menyetel aplikasi Anda untuk menjebak peristiwa SIG_HUP untuk memaksa keluar dengan lancar dari baris perintah.
Satu-satunya saat Anda akan menghentikan VM aplikasi adalah dalam status ANR (sudah menjadi zombie). ANR harus diperbaiki. Jangan pernah menerapkan aplikasi yang dapat memasuki keadaan ini. Itu sangat kasar.
Anda dapat menggunakan Google analytics dan Play Store untuk memantau penerapannya. Anda tidak ingin pengguna yang marah memberikan ulasan ANR bintang tunggal setelah harus reboot karena aplikasi zombie Anda. Sangat buruk.
Ingatlah bahwa Android adalah Linux: perlakukan itu seperti OS asli, dan hormati siklus hidup aplikasi jika tidak, Anda pasti akan menghadapi Kiamat Zombie yang ditakuti.
PS: Kalau analogi Zombie tidak suka bagaimana dengan Fantasia?