जब आप कोई नई गतिविधि शुरू करते हैं, तो वर्तमान गतिविधि को वर्तमान कार्य के पीछे के ढेर पर धकेल दिया जाता है। (आप इस व्यवहार को झंडे और/या मैनिफेस्ट के माध्यम से बदल सकते हैं, लेकिन यह डिफ़ॉल्ट व्यवहार है।) जब उपयोगकर्ता बैक फ़ंक्शन दबाता है, तो शीर्ष गतिविधि समाप्त हो जाती है और स्टैक पॉप हो जाता है। नतीजा यह है कि उपयोगकर्ता ऐप को पिछली गतिविधि पर वापस देखता है।
नई गतिविधि शुरू करने के बाद finish()
पर कॉल करना बिल्कुल ठीक है। नतीजा यह होगा कि वर्तमान गतिविधि (जो अब स्टैक के शीर्ष पर नहीं है, क्योंकि आपने अभी एक नया शुरू किया है) को स्टैक से निकाल दिया जाएगा। फिर जब उपयोगकर्ता वापस दबाता है, तो यह पिछली गतिविधि पर बैक स्टैक पर जाएगा (या स्टैक खाली होने पर आपके ऐप से बाहर निकलें)।
यदि आप हमेशा एक नया शुरू करके और finish()
पर कॉल करके कभी भी आगे बढ़ रहे हैं, तो यह ओओएम अपवाद का कारण बन सकता है क्योंकि स्टैक प्रत्येक गतिविधि के उदाहरणों के साथ भर जाता है।
आप गाइड विषय Tasks and Back Stack में इसके बारे में और अधिक पढ़ सकते हैं। यह भी वर्णन करता है कि गतिविधियों के बीच साइकिल चलाने के साथ सही ढंग से कैसे निपटें।
स्रोत
2013-08-07 18:45:45
क्या होगा यदि उपयोगकर्ता वापस बटन पर क्लिक करके पिछली गतिविधि पर वापस जाना चाहता है? – Raghunandan
नहीं। आपकी समस्या कहीं और है। – fdreger
क्या आप कहीं भी 'बिटमैप' (या संग्रह) का उपयोग कर रहे हैं? यदि आपने अभी तक [मैट मेमोरी विश्लेषक उपकरण] (http://www.eclipse.org/mat/) का उपयोग नहीं किया है, तो अब एक अच्छा समय है। – haventchecked