2012-03-26 21 views
5

मैं अपने आवेदन की स्थिति को सहेजना चाहता हूं ताकि जब इसे बंद राज्य से फिर से खोल दिया जाए, तो आखिरी टुकड़ा दिखाई दे रहा है और बैक स्टैक संरक्षित है। जब भी एप्लिकेशन बंद हो जाता है, न केवल एक अभिविन्यास परिवर्तन पर या जब सिस्टम संसाधनों को मुक्त करने के लिए ऐप को मारता है, तो यह स्थिति को संरक्षित करना चाहती है (जैसा कि onSaveInstanceState()/onRestoreInstanceState() का उपयोग करते समय मामला है।मैं एप्लिकेशन को वापस बंडल में कैसे सहेज सकता हूं?

अब तक मैं पिछले खंड और उसके राज्य को राज्य को साझा करने के लिए योजनाबद्ध रूप से पुनर्स्थापित करने और इसे बाद में बहाल करने की योजना बना रहा है। हालांकि, यह खंड वापस ढेर को संरक्षित नहीं करता है, इसलिए जब उपयोगकर्ता एप्लिकेशन लोड करता है और वापस जाने के लिए बैक बटन दबाता है एप्लिकेशन प्रवाह में "ऊपर", ऐप ऊपर जाने के बजाए छोड़ देता है।

मुझे इस बिंदु पर क्या चाहिए, एप्लिकेशन को वापस ढेर तक पहुंचने में सक्षम होना चाहिए और जब आवश्यक हो तो इसे एक बंडल में सहेजने में सक्षम होना चाहिए सिस्टममें करता है। मैंने FragmentManager.saveFragmentInstanceState() के लिए प्रलेखन पढ़ा है लेकिन मुझे यकीन नहीं है कि मेरा लक्ष्य पूरा करने के लिए इसका उपयोग कैसे किया जाए। क्या कोई मुझे सही दिशा में निर्देशित कर सकता है?

मैं एंड्रॉइड संगतता पुस्तकालय से खंड कार्यान्वयन का उपयोग कर रहा हूं।

उत्तर

4

जहां तक ​​मुझे पता है कि एंड्रॉइड सिस्टम आपको कार्य के पीछे ढेर नहीं देगा, यह केवल give you शीर्ष Activity सभी कार्यों को चलाने के लिए कर सकता है। इसलिए, आपको Activities बैक स्टैक को बनाए रखने के अपने स्वयं के तंत्र को लागू करने की आवश्यकता होगी। LocalActivityManager का कार्यान्वयन आपको विशेष रूप से इसकी saveInstanceState() विधि में मदद कर सकता है। तो आप कुछ भी ऐसा कर सकते हैं और जब चाहें अपने बैक स्टैक में onSaveInstanceState(Bundle) गतिविधियों को कॉल कर सकते हैं और फिर Bundle (उदाहरण के लिए, फ़ाइल में) जारी रखें। यदि आप Fragments का उपयोग करते हैं तो आपको अपने बैक स्टैक को बनाए रखने की भी आवश्यकता होगी।

शायद, android:alwaysRetainTaskState आपकी समस्या को हल करने में आपकी मदद कर सकता है जो वापस ढेर के प्रबंधन में डाइविंग नहीं कर सकता है।

+0

'एंड्रॉइड: हमेशाRetainTaskState' दिलचस्प लग रहा है। एक बार मेरे पास जांच करने का समय हो जाने पर मैं वापस रिपोर्ट करूंगा। – howettl

संबंधित मुद्दे

 संबंधित मुद्दे