2016-10-28 5 views
8

यदि मैं, उदाहरण के लिए, कुछ महत्वपूर्ण डेटा रखने की आवश्यकता है जो उपयोगकर्ता मेरे ऐप के भीतर संपादित कर सकता है, तो क्या मुझे हर बार उपयोगकर्ता को ऐसे डेटा को बदलने की ज़रूरत है या यह ठीक है अगर मैं इसे रोकें(), ऑनस्टॉप() या ऑनस्ट्रोय() विधियों पर?
किसी भी तरह से एप्लिकेशन अंत में कॉल किए बिना किसी भी तरीके से कॉल कर सकता है? (उदाहरण के लिए जब बैटरी समाप्त हो जाती है)ऑनपॉज() या ऑनस्टॉप() पर कॉल किया गया है, भले ही फोन की कमी के कारण फोन मर जाए?

+0

आपका आवेदन क्रैश हो सकता है और उपयोगकर्ता फोन को छोड़ सकता है जिसके परिणामस्वरूप बैक कवर और बैटरी उड़ जाती है। दोनों मामलों में 'गतिविधि' जीवन चक्र विधियों को छोड़ दिया गया है और फोन की रैम में सहेजा गया बहुत महत्वपूर्ण डेटा खो गया है। मुझे नहीं पता कि डिवाइस बैटरी से बाहर होने पर क्या होता है लेकिन [यह पुराना उत्तर] (https://stackoverflow.com/questions/27845728/what-android-methods-are-called-when-battery-dies) सुझाता है कि 'onDestroy() 'कहा जाता है। –

उत्तर

2

यह निश्चित रूप से ऑनस्ट्राय() में नहीं किया जा सकता है। documentation के अनुसार:

वहाँ स्थितियों में, जहां प्रणाली बस इसे में इस विधि (या किसी भी अन्य) बुला बिना गतिविधि के होस्टिंग प्रक्रिया मार देंगे, तो यह बातें हैं कि ऐसा करने के लिए नहीं किया जाना चाहिए रहे हैं प्रक्रिया समाप्त होने के बाद के आसपास रहने का इरादा है।

तो हाँ, एप्लिकेशन किसी भी जीवन चक्र विधियों को कॉल किए बिना समाप्त हो सकता है।

1

इस मामले में कृपया डीबग इंटरफेस के माध्यम से अपनी फोन गतिविधि को सत्यापित करें, कुछ फोन आपके आवेदन को समाप्त कर देते हैं, यह बल छोड़ दिया जाता है।

2

उस परिदृश्य में जब फ़ोन बंद हो रहा है, तो आप ACTION_SHUTDOWN मंशा का उपयोग कर सकते हैं। अधिक जानकारी here। अन्य सभी मामलों के लिए कार्य करना चाहिए। यहां तक ​​कि दिए गए लिंक में, एक बयान है कि यदि ऐप एफजी में है तो रोक दिया जाएगा।

ऐप्स को सामान्य रूप से इसे संभालने की आवश्यकता नहीं होगी, क्योंकि अग्रभूमि गतिविधि भी रोका जाएगा।

हालांकि, यदि यह इतना महंगा संचालन नहीं है, तो मैं संपादन के बाद डेटा सहेजने के साथ जाऊंगा।

2

एंड्रॉयड गतिविधि जीवन चक्र के documentation के अनुसार, कहा जाता है जब एक गतिविधि पृष्ठभूमि में चल रहा है, लेकिन (अभी तक) को मार डाला नहीं किया गया है।

इसलिए अधिकांश Android दस्तावेज़, और नमूना कोड आप मिलेगा में किसी भी लगातार राज्य गतिविधि संपादित कर रहा है को बचाने के लिए प्रयोग किया जाता है, उपयोगकर्ता के लिए "जगह में संपादित करें" मॉडल एक पेश करने के लिए और सुनिश्चित करें कि कुछ भी नहीं कर रही है, तो खो दिया है पर्याप्त संसाधन नहीं हैं।

तो आपके उपयोग के मामले में, तुम सब करने की जरूरत है अपने Activity के लिए को लागू करने और गतिविधि राज्य (EditText सामग्री या किसी अन्य चल रहे ऐसे उपयोगकर्ता इंटरैक्शन) बचाने के लिए एक कोड लिखने है। एंड्रॉइड सिस्टम उस गतिविधि स्थिति को सहेज लेगा जिसे आप अगली बार एंड्रॉइड लॉन्च करते समय अपनी गतिविधि के onCreate में वापस प्राप्त कर सकते हैं।

संबंधित मुद्दे