चित्र 1 - इस उत्तर के अनुसंधान के दौरान कई लाशों को मार दिया गया था
ओएस स्तर पर एक Android एप्लिकेशन जावा वीएम प्रक्रिया को मारना अनुशंसित नहीं है। दुर्भाग्य से, यह वही है जो ग्रहण डिवाइस विंडो "स्टॉप" करता है, जैसा कि System.exit () और शेल "किल" कमांड करता है।
यह सामान्य एप्लिकेशन जीवन-चक्र विधियों जैसे कि onStop (), onDestroy (), और अंतिम रूप () को प्रस्तुत करता है।
कई ऐप के लिए इन तरीकों की आवश्यकता होती है ग्रेसफुल एग्जिट (पूर्व के लिए। यदि वे सेंसर, मीडियाप्लेयर, इक्वालाइज़र, विज़ुअलाइज़र आदि जैसे सिस्टम ऑब्जेक्ट्स का उपयोग करते हैं)।
इन सिस्टम ऑब्जेक्ट्स को सिस्टम संसाधनों पर ज़ोंबी डेथ ग्रिप्स के साथ लटका दिया जाता है अगर इन जीवन-चक्र विधियों के दौरान रिलीज़ () को स्पष्ट रूप से नहीं कहा जाता है। अंजीर देखें। 1 से ऊपर। इससे किसी ऐप को रीस्टार्ट होने से रोका जा सकता है, और रिबूट की भी आवश्यकता होती है। वह अभद्र पहलू है।
एकमात्र समाधान यह सुनिश्चित करना है कि आप हमेशा onStop () या onDestroy () या कम से कम अंतिम रूप () के लिए कॉल के साथ अपने ऐप को सफाई से बाहर निकालें। डीबगर ऐसा करता है, जैसा कि ओएस शटडाउन पर करता है।
आप कमांड लाइन से एक सुंदर बाहर निकलने के लिए SIG_HUP घटनाओं को फंसाने के लिए अपना ऐप सेट कर सकते हैं।
जब आप वीएम ऐप को मारेंगे तभी आप ANR (पहले से ही एक ज़ोंबी) स्थिति में होंगे। ANR को निश्चित किया जाना चाहिए। कभी भी ऐसा ऐप न लगाएं जो इस राज्य में प्रवेश कर सके। यह बेहद असभ्य है।
तैनाती में इनकी निगरानी के लिए आप Google विश्लेषिकी और Play Store का उपयोग कर सकते हैं। आप अपने ज़ोंबी आवेदन के कारण रीबूट होने के बाद गुस्साए उपयोगकर्ताओं को एकल स्टार एएनआर समीक्षा नहीं देना चाहते हैं। बहुत बुरा।
याद रखें कि एंड्रॉइड लिनक्स है: इसे एक वास्तविक ओएस की तरह व्यवहार करें, और ऐप जीवन-चक्र का सम्मान करें अन्यथा आप निश्चित रूप से खतरनाक ज़ोंबी सर्वनाश का सामना करेंगे।
पुनश्च: यदि आप ज़ोंबी सादृश्य पसंद नहीं करते हैं, तो कल्पना के बारे में कैसे?