मुझे अपने एंड्रॉइड ऐप को इसकी स्थिति को डिस्क पर सहेजने के लिए चाहिए जब इसकी गतिविधि पृष्ठभूमि में रखी जाए या मार डाला जाए। यह सुझाव दिया गया है कि जब मैं ऑन पॉज़() को कॉल करता हूं और वहां कोई महंगी I/O प्रक्रियाएं करता हूं (Saving/loading document state quickly and robustly for image editor देखें)।एंड्रॉइड छोड़ते समय एंड्रॉइड पृष्ठभूमि थ्रेड कैसे संभालता है?
ओएस किस स्थिति में ओएस को थ्रेड मार देगा और ये स्थितियां आमतौर पर कैसे होती हैं?
मुझे लगता है कि यह कैसे क्रियाएँ साथ जहां ओएस धागा को मारने के लिए तय मनमाने ढंग से कर सकते हैं लेकिन ज्यादातर केवल यह कर देगा जब संसाधनों अत्यंत सीमित हैं बांटे जाने से तरह होगा। हालांकि इस के कुछ विशिष्ट दस्तावेज ढूंढना अच्छा लगेगा।
कुछ टेस्ट कोड के साथ खेलने के बाद, कुछ डिवाइस पर पृष्ठभूमि थ्रेड शुरू हो गया है() मेरे डिवाइस पर पृष्ठभूमि में अनिश्चित काल तक चलाएगा (मैंने कई ऐप्स लोड करने का प्रयास किया और इसे मारने के लिए नहीं मिला)।
मेरी विशिष्ट एप्लिकेशन के लिए, मैं एक बिटमैप संपादक जहाँ मैं कमान पैटर्न और मेमेंटो पैटर्न का उपयोग कर रहा पूर्ववत की अनुमति है और संपादन के फिर से करना लिख रहा हूँ। मैं चाहता हूं कि उपयोगकर्ता अपने संपादन को पूर्ववत/दोबारा करने में सक्षम हो। उपयोगकर्ता को फोन कॉल मिलता है और जब पृष्ठभूमि में रखा जाता है तो गतिविधि मारे जाती है। सबसे अच्छा समाधान मैं सोच सकता हूं कि बैकग्राउंड थ्रेड का उपयोग अनुप्रयोग के उपयोग के दौरान डिस्क पर मेरे कमांड और मेमेंटो ऑब्जेक्ट्स को लगातार सहेजने के लिए और पॉज़ थ्रेड में छोड़े गए किसी भी ऑब्जेक्ट को सहेजने के लिए है। बदतर मामले में, अगर धागा मारे गए तो मैं केवल कुछ संपादन खो दूंगा।
बस स्पष्ट करने के लिए, यदि आप कुछ गतिविधि से जुड़ी प्रक्रिया में धागा बनाते हैं, तो गतिविधि को मारने पर यह धागा मारा जाएगा (यानी प्रक्रिया और धागा जुड़े हुए हैं)? – memcom
@tifftuff: एक गतिविधि एक आवेदन नहीं है। एक गतिविधि एक आवेदन का एक घटक है। एक आवेदन में कई गतिविधियां हो सकती हैं, जिनमें कई गतिविधियां, सेवाएं इत्यादि शामिल हैं। जब किसी एप्लिकेशन का अंतिम घटक नष्ट हो जाता है (उदाहरण के लिए, उपयोगकर्ता एक छोटे से एप्लिकेशन में एकमात्र गतिविधि से वापस दबाता है), प्रक्रिया रीसाइक्लिंग के लिए निर्धारित की जाती है या समाप्ति। थ्रैड मत लीजिए। यदि आप धागा शुरू करते हैं, तो आपको इसे समाप्त करने की व्यवस्था करनी होगी, क्योंकि एंड्रॉइड इसे आपके लिए समाप्त नहीं करेगा, प्रक्रिया को समाप्त करने के अलावा, जो कुछ हफ्तों तक नहीं हो सकता है। – CommonsWare
धन्यवाद। क्या आपके पास इस पृष्ठभूमि के काम के लिए धागे की तुलना में उपयोग करने के लिए कोई और सेवा उचित होगी या नहीं? – memcom