मेरे एंड्रॉइड ऐप में, मुख्य गतिविधि कभी-कभी किसी सर्वर से डेटा लोड करने के लिए थ्रेड शुरू करेगी। यह धागा ऐप के डेटाबेस को संशोधित करता है और कुछ महत्वपूर्ण फाइलों को संपादित करता है। AFAIK, ऐसा लगता है कि यह धागा निष्पादित जारी है। अगर एंड्रॉइड कम स्मृति की स्थिति में आता है और पूरे एप्लिकेशन को मारने का फैसला करता है तो इस धागे का क्या होगा? क्या कभी एक स्थिति होगी क्या यह धागा समय से मर सकता है? यदि हां, तो क्या कोई तरीका है कि मैं देख सकता हूं कि धागा मारा जा रहा है, और इसके बारे में कुछ करें?एंड्रॉइड थ्रेड के साथ होने वाली गतिविधि के बाद क्या होता है?
क्योंकि इस सूत्र डेटाबेस में महत्वपूर्ण डेटा को संशोधित करता है मैं पूछ रहा हूँ, और अगर यह अचानक मौत हो जाती है, आवेदन ठीक से काम करना बंद कर सकता है।
निश्चित रूप से, आप इसके बारे में कुछ कर सकते हैं। लेकिन एक बार जब आप ऐप को नष्ट नहीं कर देते हैं - 'ऑनस्ट्रोय' की तुलना में जल्द से जल्द कार्य करें - 'ऑनस्टॉप' में एक झंडा सेट करें जो धागा मतदान कर सकता है, यह जानने के लिए कि ऐप का खतरा दूर है। 'रेज़्यूम' में उस ध्वज को साफ़ करें। थ्रेड जितना संभव हो उतना छोटा काम करता है, और यदि यह ध्वज देखता है, तो यह स्वयं समाप्त होता है। प्रत्येक खंड के अंत में, यह फ़ाइल में इसकी प्रगति की स्थिति अपडेट करता है, इसलिए सही ढंग से पुनरारंभ कर सकते हैं। 'ऑनस्टॉप' में, '! Thread.isAlive' या 1 सेकंड तक वापस न आएं - परीक्षण और काउंटर के साथ लूप और एक समय में 100 एमएस सोएं, 10 गुना से अधिक नहीं। – ToolmakerSteve
थ्रेड को किसी भी लंबी देरी (उदाहरण के लिए सर्वर से प्रतिक्रिया) के बाद ध्वज की जांच करने की आवश्यकता है, और महत्वपूर्ण कार्रवाइयां करने से पहले (स्थानीय फाइल/डेटाबेस अपडेट करना)। यह उस ध्वज सेट के साथ एक महत्वपूर्ण खंड कभी शुरू नहीं करता है। जब तक कि महत्वपूर्ण वर्ग 100-200 मीटर से अधिक नहीं हैं, मुझे लगता है कि आप अभ्यास में सुरक्षित हैं। (यह दावा नहीं करना मिशन मिशन महत्वपूर्ण ऐप के लिए अच्छा दृष्टिकोण है, लेकिन हम में से अधिकांश के लिए काफी अच्छा है।) ध्यान दें कि मेरे दृष्टिकोण का सार काम करना है * जबकि आपका ऐप अभी भी जिंदा है * - 1 तक 'स्टॉप' में देरी करके दूसरा। कई स्थितियों के लिए, यह सब कुछ जरूरी है। – ToolmakerSteve
अद्यतन: 1 सेकंड तक देरी का मेरा सुझाव 'ऑनस्टॉप' के लिए उचित होने का लंबा तरीका है। शोध करने की आवश्यकता है कि कितना समय उचित है - उचित समय की एंड्रॉइड की परिभाषा क्या है। ध्यान दें कि यदि कोई यूआई कॉल है जहां एंड्रॉइड * कुछ हद तक उदार होना चाहिए, तो यह 'ऑनस्टॉप' है, क्योंकि यह सुनिश्चित करने के लिए एक ऐप का आखिरी मौका है कि उन्होंने जो भी देखभाल की है उसे संरक्षित किया है। – ToolmakerSteve