onStop()
(उदाहरण के लिए) जब आप (कुछ अन्य गतिविधि के लिए गतिविधि छोड़ संपादित बुलाया जाएगा:। लगभग commonswares टिप्पणी देखना संवाद थीम्ड गतिविधियों के बारे में)। उदाहरण के लिए यदि आप गतिविधि बी में startActivity()
गतिविधि ए शुरू करने के लिए उपयोग करते हैं। जब आप गतिविधि बी में वापस दबाते हैं तो आप गतिविधि ए और onStart
पर वापस आ जाएंगे।
यह के कारणों से अलग है onStop
के बिना बुलाया जा सकता है। उदाहरण के लिए स्क्रीन टाइम्स आउट हो या आप स्टैंडअल बटन दबाएंगे, लेकिन शायद onStop
(स्मृति उपलब्ध नहीं है और क्या नहीं), तो यह एक "हल्का विराम" है। ऑनस्टॉप को शायद इस मामले में भी अंततः बुलाया जाएगा, लेकिन तुरंत नहीं।
ठीक है, लेकिन क्या उपयोग
अक्सर कोई विशिष्ट उपयोग है, लेकिन हो सकता है। चूंकि आपकी गतिविधियां कुछ अन्य गतिविधि शुरू करने के बाद भी अपनी याददाश्त स्थिति को ढेर पर रखती हैं, इसलिए स्टैक शुरू होने वाली गतिविधियों की संख्या (ढेर की ऊंचाई) के साथ बढ़ेगा। इससे कुछ अनुप्रयोगों में बड़ी मेमोरी उपयोग हो सकती है। कुछ समय बाद ढांचा ढेर पर कुछ गतिविधियों को मार देगा और मार डालेगा, लेकिन यह बदमाश है और शायद इसका मतलब यह होगा कि लौटने पर कई राज्यों को बनाए रखा जाएगा।
तो onStart/onStop
के लिए एक उदाहरण का उपयोग यह है कि यदि आप किसी अन्य के लिए गतिविधि छोड़ते समय कुछ राज्य जारी करना चाहते हैं और वापस आने पर इसे फिर से बनाना चाहते हैं। मैंने इसे सूचीकरण को शून्य, खाली छवि कैश और इसी तरह (बहुत विशिष्ट अनुप्रयोगों में) सेट करने के लिए उपयोग किया है। यदि आप किसी सूची एडाप्टर में दृश्यमान दृश्यों द्वारा उपयोग की गई स्मृति को मुक्त करना चाहते हैं तो आप इसे ऑनस्टार्ट में पुन: बना सकते हैं और जीसी द्वारा विचारों को उठाया जा सकता है। इससे संभावना बढ़ जाएगी कि गतिविधि की शेष स्मृति स्थिति चालू रहेगी।
कुछ संसाधनों को सहेजने के लिए पर्याप्त समझा जा सकता है जबकि गतिविधि का उदाहरण जीवित है और कुछ केवल तभी जब यह ढेर के सामने है। यह तय करने के लिए आप पर निर्भर है कि आपके आवेदन में सबसे अच्छा क्या है और बनाने/शुरू/फिर से शुरू करने की ग्रैन्युलरिटी आपको वह देती है।
स्रोत
2012-03-29 22:17:09
"ऑनस्टॉप() को तब कहा जाएगा जब आप किसी अन्य गतिविधि के लिए गतिविधि छोड़ते हैं" - असल में, यह तब कहा जाएगा जब आपकी गतिविधि अब दिखाई नहीं देगी। यदि एक संवाद-थीम वाली गतिविधि अग्रभूमि में आती है, तो 'ऑनस्टॉप() 'नहीं कहा जाता है। – CommonsWare
अच्छा बिंदु। उस उदाहरण में पृष्ठभूमि में कॉलिंग गतिविधि अभी भी दिखाई दे सकती है (और फिर रीसाइक्लिंग सामान खराब होगा)। मैं यह कह रहा था कि यह कहां होता है और स्मृति उपयोग को कम करने के लिए मैंने इसका उपयोग कैसे किया है, लेकिन यह एक अच्छा छूट है। एक सामान्य नियम के रूप में यह अभी भी अच्छा है। मैंने अभी तक एक दूसरे को बुलाए संवाद संवाद गतिविधियों के ढेर को देखना नहीं है। –
ओह, बिना किसी संदेह के, संवाद-थीम वाली गतिविधियां असामान्य हैं। – CommonsWare