मेरे आवेदन में, मेरे पास एक सुविधा है जो उपयोगकर्ता को व्यक्तिगत ऐप सेटिंग्स के समूह को अपडेट करने की अनुमति देती है, जिसे बूलियन ध्वज द्वारा ट्रिगर किया जाता है जिसे useNew कहा जाता है। एक रुकावट की संभावना को ध्यान में रखते हुए, मैं useNew को गलत पर रीसेट करता हूं यदि a) उपयोगकर्ता ऑपरेशन को रद्द कर देता है या b) इस तर्क को संसाधित करने वाली गतिविधि अप्रत्याशित रूप से समाप्त हो जाती है। मैंने रीसेट लॉजिक को ऑनस्टॉप में रखा है क्योंकि एंड्रॉइड निर्दिष्ट करता है कि, हनीकॉम्ब के बाद, यह आखिरी जीवनचक्र घटना है जिसे कहा जाने की गारंटी है: https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
यह एक को छोड़कर सभी परिस्थितियों में ठीक काम कर रहा है। यदि मैं स्टूडियो में ऐप चलाता हूं और फिर, ऐप अभी भी खुला है, तो इसे स्टूडियो से फिर से चलाने का प्रयास करें, मुझे यह चेतावनी संदेश मिलता है कि यह मेरे सत्र को मार देगा।
"रीस्टार्ट ऐप" को चुनने से मेरी गतिविधि बिना ऑनस्टॉप कॉल किए बंद हो जाती है। मेरा ध्वज कभी रीसेट नहीं होता है और अगले ऐप चलाने पर, तर्क विफल हो जाता है।
मेरा प्रश्न: क्या यह व्यवहार स्टूडियो में एक विलक्षण घटना है, या क्या यह संभव है कि ऑनस्टॉप को दुर्लभ परिस्थितियों में छोड़ दिया जाए?
2 जवाब
क्या आप सुनिश्चित हैं कि ऑनस्टॉप को नहीं बुलाया जा रहा है? क्या हो रहा है कि ऑनस्टॉप को कॉल किया जा रहा है लेकिन संबंधित कोड नहीं चलाया जा रहा है। एंड्रॉइड स्टूडियो में जब आप ऐप को पुनरारंभ करने के लिए मजबूर करते हैं, तो यह तुरंत आपके एप्लिकेशन को समाप्त कर देता है।
Google दस्तावेज़ से, ऑनस्टॉप एक हत्या योग्य विधि है।
[हत्या योग्य विधियों] के लिए, उस विधि के बाद गतिविधि की मेजबानी करने वाली प्रक्रिया को सिस्टम द्वारा किसी भी समय इसके कोड की दूसरी पंक्ति निष्पादित किए बिना मार दिया जा सकता है।
इसके बजाय, कोई भी कोड जो डेटा को बनाए रखता है (अर्थात उपयोगकर्ता डेटा को स्वतः सहेजना), उसे ऑनपॉज़ () में रखा जाना चाहिए।
भंडारण में किसी भी स्थायी डेटा (जैसे उपयोगकर्ता संपादन) को लिखने के लिए आपको ऑनपॉज़ () विधि का उपयोग करना चाहिए।
जब एंड्रॉइड स्टूडियो ऐप को पुनरारंभ करने के लिए मारता है, तो कार्रवाई जबरदस्त होती है, इसलिए यह किसी भी जीवनचक्र शब्दार्थ का पालन नहीं करता है। यह "सामान्य" तंत्र से नहीं गुजरता है जो Activity
जीवनचक्र स्थिति को संचालित करता है। इसे अपने ऐप को होस्ट करने की प्रक्रिया के लिए kill -9
चलाने जैसा सोचें।
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।