2010-01-14 8 views
13

आइए कहें कि मैं अपना ऐप होम स्क्रीन से लॉन्च करता हूं, कुछ गतिविधियों के माध्यम से नेविगेट करता हूं, फिर मैं होम कुंजी दबाता हूं और जीमेल ऐप में कुछ और करता हूं।पृष्ठभूमि से एंड्रॉइड ऐप स्टैक को पुनर्स्थापित करें

मेरे मेल की जांच करने के बाद, मैं जीमेल ऐप छोड़ने के लिए फिर से होम कुंजी दबाता हूं और होम स्क्रीन पर फिर से लौटने के लिए अपने ऐप के आइकन पर क्लिक करता हूं।

जब मैं अपने ऐप पर वापस आ जाता हूं, तो मैं चाहता हूं कि मैं उस आखिरी गतिविधि पर वापस लौटना चाहूंगा, जो एक नया सत्र शुरू नहीं करता है। मैं इसे पूरे दिन समझने की कोशिश कर रहा हूं।

<activity android:name=".Main" 
       android:label="@string/app_name" 
       android:screenOrientation="portrait" 
       android:alwaysRetainTaskState="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

श्रेणी विशेषता लांचर मेरे एप्लिकेशन हमेशा गतिविधि मुख्य में शुरू करता है, तो मैं पिछले गतिविधि पुनर्स्थापित करने के बारे में जाने के लिए पता नहीं कैसे:

मेरी पहली गतिविधि के लिए मेरे प्रकट इस प्रकार है। लोगों ने मुझे अंतिम गतिविधि को बचाने और लॉन्च पर लोड करने के लिए साझा संदर्भों का उपयोग करने के लिए कहा है, लेकिन मुझे नहीं लगता कि यह ऐसा करने का इरादा है क्योंकि यह बहुत ही सुरुचिपूर्ण नहीं है। क्योंकि क्या होता है जब आप लॉन्च कर रहे हैं किसी ऐप लॉन्चर आवेदन भेजता है आशय "android.intent.action.MAIN है इसका एक ही तरीका है

<activity android:launchMode=["multiple" | "singleTop" | 
           "singleTask" | "singleInstance"] ... 
+0

आपका मेनिफेस्ट ठीक दिखता है; जैसा कि आप उम्मीद करते हैं इसे काम करना चाहिए। किसी भी मौके पर आप इसे केवल डीबगर के तहत देख रहे हैं, इस वर्चुअल समान प्रश्न की तरह? http://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after-restart-from-home/2061447 –

+5

मैंने इसे ठीक से समझ लिया जैसे मुझे आपका जवाब मिला, यह ग्रहण डीबग से संबंधित नहीं था बल्कि यह रन कॉन्फ़िगरेशन से संबंधित था: मेरे पास लॉन्च एक्शन सेट था: एंड्रॉइड टैब के तहत डिफ़ॉल्ट गतिविधि लॉन्च करें। मैंने इसे "कुछ भी नहीं" में बदल दिया और यह चाल चल गई। विश्वास नहीं कर सकता मैं इसे महसूस करने में इतना लंबा लगा! धन्यवाद – jlim

+0

आह हे, यह भी जानना अच्छा है! –

उत्तर

0

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

0

ऑनर्यूम() और ऑनपॉज ठीक से लागू किया गया है?

protected void onResume(){ 
    super.onResume(); 
} 

protected void onPause() { 
    super.onPause(); 
} 
संबंधित मुद्दे