2010-01-25 14 views
15

मेरे पास 2 गतिविधियां, लॉगऑनएक्ट और मेनएक्ट के साथ एक एप्लिकेशन है। LogonAct एक लॉगऑन गतिविधि है जिसे मैं उपयोगकर्ता को एप्लिकेशन पर वापस आने पर हर बार जाने के लिए मजबूर करना चाहता हूं। मैंने एंड्रॉइड सेट किया है: LogonAct पर clearTaskOnLaunch = "true"जब उपयोगकर्ता एप्लिकेशन छोड़ देता है तो रूट गतिविधि पर वापस स्टैक को साफ़ करने के लिए कैसे करें?

जब मैं पहली बार एप्लिकेशन मैं स्क्रीन के इस क्रम के माध्यम से जाना शुरू करते हैं,

Home -> LogonAct -> MainAct -> Home

मैं तो इस क्रम का पालन करें,

LogonAct -> Back -> MainAct

क्यों यह मुझे वापस MainAct को ला रहा है ? लॉगऑनएक्ट एंड्रॉइड के बाद से उस गतिविधि को बंद नहीं किया जाना चाहिए: clearTaskOnLaunch = "true"। जब मैं LogonAct से बैक बटन दबाता हूं तो मुझे घर वापस लाया जाने की उम्मीद है।

AndroidManifest.xml से प्रासंगिक टुकड़े,

<activity android:name=".LogonAct" 
      android:clearTaskOnLaunch="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

    <activity android:name=".MainAct"> 
     <meta-data android:name="android.app.default_searchable" 
        android:value=".SearchResults" /> 
    </activity> 

मैं 1.5 उपयोग कर रहा हूँ।

किसी भी मदद की सराहना की।

+0

आप अपने प्रश्न संपादित कर सकते हैं और अपने मेनिफेस्ट, या कम से कम 'लॉगऑनएक्ट' के लिए तत्व जोड़ें, क्योंकि इसमें लोगों की पहचान करने में मदद मिलेगी यदि इसमें कोई गलती है। –

+0

AndroidManifest.xml से स्निपेट्स डेव शामिल थे। मुझे उन्हें प्रश्न के साथ शामिल करना चाहिए था लेकिन मेरे पास कोड मेरे सामने नहीं था। – Adrian

उत्तर

11

android:clearTaskOnLaunch के लिए दस्तावेज़ों का उल्लेख है कि यह विशेषता "जब भी [गतिविधि] होम स्क्रीन से पुनः लॉन्च की जाती है" लागू होती है।

हालांकि, आपके मामले में आप होम स्क्रीन पर लौटने के लिए होम बटन दबाने रहे हैं, बजाय वापस बटन दबाने। इसका मतलब है कि आपका आवेदन वास्तव में को पुनः लॉन्च नहीं किया गया है क्योंकि MainAct "समाप्त" नहीं हुआ था। यह तब होता है जब आप वापस दबाते हैं (या यदि एंड्रॉइड संसाधनों को सहेजने के लिए कार्य को मारता है आदि)।

आप केवल अपने आवेदन में दो गतिविधियों है के रूप में, आप MainAct पर android:noHistory विशेषता सेट कर सकते हैं, इस प्रकार सुनिश्चित करना है कि उपयोगकर्ताओं के लिए यह करने के लिए वापस नहीं कर सकते हैं और LogonAct के माध्यम से गुजरना होगा।

एक तरफ, यह उपयोगकर्ताओं को ऐप से दूर जाने पर हर बार पुनः लॉगिन करने के लिए मजबूर करने के लिए थोड़ा परेशान लगता है (उदाहरण के लिए जब उन्हें फ़ोन कॉल प्राप्त होता है)।
आप अपने ऐप के लगातार स्टोरेज में टाइमआउट के साथ एक सत्र टोकन बनाए रख सकते हैं, या सेवा का उपयोग करके नेटवर्क कनेक्शन खोल सकते हैं यदि आपका ऐप — पर काम करता है लेकिन निश्चित रूप से यह आपके और आपकी आवश्यकताओं पर निर्भर करता है। :)

+1

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

+3

आह। उस स्थिति में, आप प्रत्येक 'गतिविधि' के 'ऑनस्यूम()' में एक त्वरित विधि कॉल जोड़ सकते हैं, जो आपके पास है कि यह जांच करता है कि कोई निश्चित समय अवधि समाप्त हो गई है या नहीं। यदि ऐसा है, तो 'FinonAct' पर वापस भेजने के लिए' Fin() 'पर कॉल करें और 'इरादा' को आग लगाएं। –

15

आप निम्न कर सकते हैं: मुख्य गतिविधि
2 की घोषणा में,
1. सेट clearTaskOnLaunch = "true" AndroidManifest में।गतिविधि में है कि बंद करना होगा:

@Override 
public void onBackPressed(){ 
    moveTaskToBack(true); 
} 

इसलिए यदि उपयोगकर्ता वापस प्रेस - यह होमस्क्रीन में वापस आता है उपयोगकर्ता फिर से आवेदन की शुरूआत करता है, तो - कार्य ढेर को साफ करता है और वह मुख्य गतिविधि जड़ की बात आती है

+0

धन्यवाद muzhig आपका विवरण मुझे बहुत मदद करता है। – amity

+0

धन्यवाद muzhig..it मेरी मदद की ... –

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

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