2012-02-06 17 views
6

मेरे पास लॉगिन एक्टिविटी है जो लॉगिन विवरण के लिए साझा किए गए संदर्भों की जांच करता है, फिर यह इसके बाद होम एक्टिविटी और अन्य गतिविधियों पर रीडायरेक्ट करता है। मैंने इस गतिविधि में से प्रत्येक पर मेनू आइटम साइन आउट रखा है और साइन आउट बटन पर इस कोड का उपयोग किया है।लॉगिन गतिविधि को छिपाएं

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

लॉगिन गतिविधि को कैसे छिपाना है, ताकि जब उपयोगकर्ता होम स्क्रीन से वापस बटन दबाए तो यह ऐप बंद कर देगा।

जब मैं ऐप खोलता हूं तो यह होम स्क्रीन दिखाता है और जब मैं सामान्य रूप से वापस बटन दबाता हूं तो उसे ऐप बंद करना चाहिए। लेकिन मेरे मामले में यह मुझे लॉगिन स्क्रीन पर ले जाता है जो पहली स्क्रीन जांच उपयोगकर्ता प्रमाण-पत्र है।

मैं लॉगिन गतिविधि को समाप्त नहीं कर सकता, अन्यथा समाधान समाधान नहीं करता है।

मैं एंड्रॉइड के लिए नया हूं। कृपया इस समस्या को हल करने के लिए कुछ सुझाव दें।

+3

एंड्रॉइड का उपयोग करें: लॉगिन गतिविधि के लिए मेनिफेस्ट में noHistory = "true"। –

+0

मैंने कोशिश की, लेकिन यह ढेर से गतिविधि को हटा देता है। – SkyWalker

उत्तर

5

आप अपने घर गतिविधि की पीठ कुंजी समारोह पर इस प्रयास करना चाहिए:

onBackpress(){ 
Intent intent = new Intent(mContext, LoginActivity.class); 
intent.putExtra("FLAG", 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
} 

और अपने LoginActivity पर सिर्फ कार्य करें:

onNewIntent(Intent intent){ 
    int i = intent.getIntExtra("FLAG", 0); 

    if(i == 0) 
     finish(); 

} 

गतिविधि में menifest singleTop होना चाहिए के लिए launchMode याद है।

+0

त्रुटि दिखाता है "putIntExtra पर विधि INTExtra (स्ट्रिंग, int) प्रकार के इरादे के लिए अपरिभाषित है। और GetData पर "GetData को हल नहीं किया जा सकता है या कोई फ़ील्ड नहीं है"। – SkyWalker

+1

मैंने अपना जवाब संपादित किया है, –

+0

धन्यवाद आदमी! सही काम करता है। क्या आप मुझे संक्षेप में बता सकते हैं कि हमने क्या किया है? – SkyWalker

4

Activity.onBackPressed() विधि ओवरराइड करें और फिर एक इरादे के माध्यम से एप्लिकेशन घर भेजें।

एसडीके से

:

एक आशय निम्नलिखित श्रेणियां साथ आप घर जाने के लिए अनुमति देगा।

श्रेणी CATEGORY_HOME श्रेणी के साथ ACTION_MAIN - होम स्क्रीन लॉन्च करें।

+0

मैं होम गतिविधि में बैकप्रेस पर ओवरराइड करता हूं। लेकिन, ऐप को बंद करने के लिए फक्शन के अंदर मैं कौन सा कोड लिखता हूं। – SkyWalker

+0

आप अपने ऐप को मार नहीं सकते हैं, ActivityManager आपके लिए ऐसा करेगा, बस एक इरादा घर भेजें। – JoxTraex

+0

मेरा ऐप पहली बार उपयोगकर्ता नाम और पासवर्ड मांगता है और इसके बाद यह सीधे होम पेज खोलता है। लेकिन, जब मैं वापस बटन दबाता हूं तो यह लॉगिन गतिविधि में ले जाता है। तो घर गतिविधि से पीछे बटन पर मैं ऐप बंद करना चाहता हूं (ऐप को मजबूती से मार नहीं सकता)। – SkyWalker

1

आप बैक बटन कीप्रेस ईवेंट को ओवरराइड कर सकते हैं और दबाए जाने पर इसे ऐप बंद कर सकते हैं।

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