सभी पिछली गतिविधियों को समाप्त करें


368

मेरे आवेदन में निम्न प्रवाह स्क्रीन हैं:

Home->screen 1->screen 2->screen 3->screen 4->screen 5

अब मेरे पास log out प्रत्येक स्क्रीन में एक सामान्य बटन है

( Home/ screen 1 / screen 2 /screen 3/ screen 4 / screen 5)

मैं चाहता हूं कि जब उपयोगकर्ता लॉग आउट बटन (किसी भी स्क्रीन से) पर क्लिक करे, तो सभी स्क्रीन समाप्त हो जाएंगे और एक नई स्क्रीन Log inखुल जाएगी।

मैंने इसे FLAG_ACTIVITYहासिल करने के लिए लगभग सभी प्रयास किए हैं । मैं स्टैकओवरफ्लो में कुछ उत्तरों से गुजरता हूं, लेकिन समस्या को हल करने में सक्षम नहीं। मेरा एप्लिकेशन Android 1.6 पर है इसलिए उपयोग करने में सक्षम नहीं हैFLAG_ACTIVITY_CLEAR_TASK

क्या मुद्दे को हल करने का कोई तरीका है?


क्या आप startActivityForResult का उपयोग करके अपनी नेस्टेड गतिविधियों को चलाते हैं?
वुंडशी

no। सभी गतिविधियाँ startActivity के साथ शुरू की जाती हैं।
तन्मय मंडल

मैं नेस्टेड गतिविधियों का उपयोग कर रहा हूं, जबकि कॉड नेस्टेडफिनिटीटैस्क () नेस्टेड गतिविधि में चलाता है। क्या यह व्यवहार को बदलता है? जब कभी-कभी मुझे फेल्योर का परिणाम मिल जाता है, तो जब ResisInfo फाइनेंशफिनिटीटस्क चलाता है।
रिपाल तम्बोली

कृपया इस उत्तर की जाँच करें, यह निश्चित रूप से आपकी मदद करेगा stackoverflow.com/a/25159180/2732632
किम्मी ढींगरा

3
एंड्रॉइड 21 ने एक्टिविटी.फिनिशअंडरमोवेटस्क () पेश किया।
जोसेफ जॉनसन

जवाबों:


543

उपयोग:

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

यह घर के शीर्ष पर सभी गतिविधियों को साफ करेगा।

यह मानते हुए कि जब उपयोगकर्ता लॉग इन करता है और घर बनाया जाता है तो लॉगिन स्क्रीन खत्म कर रहा होता है और बाद में उस एक के ऊपर 1 से 5 तक सभी स्क्रीन। मेरे द्वारा पोस्ट किया गया कोड आपको अन्य सभी गतिविधियों को पूरा करने के लिए होम स्क्रीन पर वापस आ जाएगा। आप इरादे में एक अतिरिक्त जोड़ सकते हैं और होम स्क्रीन गतिविधि में पढ़ सकते हैं और इसे भी समाप्त कर सकते हैं (हो सकता है कि वहां से लॉगिन स्क्रीन फिर से लॉन्च करें या कुछ और)।

मुझे यकीन नहीं है लेकिन आप इस झंडे के साथ लॉगिन करने की कोशिश कर सकते हैं। मुझे नहीं पता कि उस मामले में गतिविधियों का आदेश कैसे दिया जाएगा। तो यह नहीं पता कि यह आपके द्वारा वर्तमान में मौजूद स्क्रीन सहित स्क्रीन के नीचे वाले को साफ कर देगा लेकिन निश्चित रूप से जाने का रास्ता है।

उम्मीद है की यह मदद करेगा।


उपयोगकर्ता अपनी पहली स्क्रीन को होम स्क्रीन के रूप में दिखा रहा है, मुख्य मुद्दा है।
तन्मय मंडल

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

10
गतिविधि को घोषित करने के बजाय singleInstance, FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOPआशय के झंडे के रूप में उपयोग करने पर विचार करें । यह हस्तक्षेप करने वाली गतिविधियों को समाप्त कर देगा और वांछित गतिविधि शुरू कर देगा (या अग्रभूमि में वापस लाएगा)।
कॉमन्सवेयर

13
@ कॉमन्सवेयर intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);को मेरी गतिविधि में शामिल करने से मुझे मदद नहीं मिली। मैंने हस्तक्षेप करने वाली गतिविधियाँ पूरी नहीं कीं। जब मैं लॉगिन स्क्रीन से वापस दबाता हूँ तो मैं पिछली गतिविधियों को देख सकता हूँ Intent intent=new Intent(BaseActivity.this, Login.class);intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);startActivity(intent);। मेरा कोड है ।
तन्मय मंडल

26
यह कोड केवल शीर्ष गतिविधि स्टैक को साफ़ करता है, सभी गतिविधियों के इरादे को साफ़ करने के लिए।
अजय वेणुगोपाल

318

आप कोशिश कर सकते हैं Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK। यह सभी पिछली गतिविधि को पूरी तरह से साफ़ कर देगा और नई गतिविधि शुरू करेगा।


11
उचित समाधान, लेकिन केवल एपीआई 11+
rnnodennyk

मैंने इस अतिरिक्त ध्वज का उपयोग करना समाप्त कर दिया क्योंकि यह मुख्य गतिविधि दिखाते समय देरी का कारण नहीं बनता (यह इसे पुनः आरंभ नहीं करेगा इसलिए यह बहुत तेज़ है)।
मौरिजियो

2
@riwnodennyk एपीआई 11+ क्यों?
मुहम्मद बाबर

17
पूर्व 11 संस्करणों के लिए IntentCompat.FLAG_ACTIVITY_CLEAR_TASK का उपयोग करें
स्टीवन पेना

2
@ono हाँ। आपको बस इतना ही चाहिए। सुनिश्चित करें कि आपकी लक्ष्य गतिविधि का लॉन्च मोड "सिंगलटैस्क" के रूप में प्रकट होता है।
स्टीवन पेना

137

अपनी नई गतिविधि शुरू करने से पहले, बस निम्नलिखित कोड जोड़ें:

finishAffinity();

या यदि आप चाहते हैं कि यह Android के पिछले संस्करणों में काम करे:

ActivityCompat.finishAffinity(this);

12
ActivityCompat.finishAffinity (this); api <16 के लिए कॉल करें activity.finish ()। तो यह काम नहीं करेगा।
आमिर अब्रो

1
@ बट्टो कलदास, मैंने स्वयं स्रोत कोड की पुष्टि की है, यह एपीआई <16 के लिए काम नहीं करेगा जैसा कि आमिरब्रोब ने उल्लेख किया है। यह केवल एपीआई <16 पर गुजरने वाली गतिविधि को समाप्त करेगा।
हेंड्रडब्ल्यूडब्ल्यू

39

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

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);

उपरोक्त कोड को छोड़कर सभी गतिविधियों को साफ करता है LoginActivity। फिर अंदर निम्नलिखित कोड डाल LoginActivityकी onCreate(...)जब के लिए सुनने के लिए, LoginActivityबाहर निकलें 'संकेत पारित किया गया था निर्मित किया जाता है और':

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();  
}

एंड्रॉइड में एग्जिट बटन क्यों इतना मुश्किल बना रहा है?

एंड्रॉइड आपको अपने एप्लिकेशन में "बाहर" बटन होने से रोकने के लिए कड़ी मेहनत करता है, क्योंकि वे चाहते हैं कि उपयोगकर्ता इस बात की कभी परवाह न करें कि वे जो प्रोग्राम उपयोग करते हैं वह पृष्ठभूमि में चल रहे हैं या नहीं।

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

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


31
Intent intent = new Intent(this, classObject);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

यह सभी Android संस्करणों के लिए काम करेगा। जहां IntentCompatएंड्रॉइड सपोर्ट लाइब्रेरी में क्लास जोड़ी गई।


IntentCompat.FLAG_ACTIVITY_CLEAR_TASKमान्यता प्राप्त नहीं है, Intentइसके बजाय का उपयोग करें IntentCompat
कूलमाइंड

30

गतिविधि के लिए निम्नलिखित का उपयोग करें

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

टुकड़ा उपयोग के लिए CLEAR_TASK ध्वज निकालें।

मुझे उम्मीद है कि यह कुछ लोगों के लिए उपयोग हो सकता है।


24

मुझे लगता है कि मुझे देर हो गई है लेकिन सरल और संक्षिप्त जवाब है। गतिविधि में एक फिनिशएफ़िनिटी () विधि है जो वर्तमान गतिविधि और सभी मूल गतिविधियों को समाप्त कर देगी, लेकिन यह केवल एंड्रॉइड 4.1 या उच्चतर में काम करता है।

एपीआई 16+ के लिए, का उपयोग करें

finishAffinity();

नीचे 16 के लिए, का उपयोग करें

ActivityCompat.finishAffinity(YourActivity.this);

आशा है ये मदद करेगा!


21

से developer.android.com :

public void finishAffinity ()

एपीआई स्तर 16 में जोड़ा गया

इस गतिविधि को समाप्त करें और साथ ही साथ वर्तमान कार्य में इसके नीचे की सभी गतिविधियों को समान रूप से संपन्न करें। यह आमतौर पर तब उपयोग किया जाता है जब किसी एप्लिकेशन को किसी अन्य कार्य पर लॉन्च किया जा सकता है (जैसे कि एक सामग्री के ACTION_VIEW से जो इसे समझता है) और उपयोगकर्ता ने वर्तमान कार्य से बाहर और अपने स्वयं के कार्य के लिए अप नेविगेशन का उपयोग किया है। इस स्थिति में, यदि उपयोगकर्ता ने दूसरे एप्लिकेशन की किसी भी अन्य गतिविधियों में नेविगेट किया है, तो उन सभी को कार्य स्विच के भाग के रूप में मूल कार्य से हटा दिया जाना चाहिए।

ध्यान दें कि यह खत्म आपको पिछली गतिविधि के लिए परिणाम देने की अनुमति नहीं देता है, और यदि आप ऐसा करने की कोशिश कर रहे हैं तो एक अपवाद फेंक दिया जाएगा।


19

एक साइड नोट पर,
यह उत्तर जानने के लिए अच्छा है ( https://stackoverflow.com/a/13468685/7034327 )

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
this.finish();

जबकि यह काम नहीं करता है

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

.setFlags() किसी भी पिछले झंडे को बदल देता है और किसी भी नए झंडे को जोड़ नहीं देता है.addFlags() नहीं करता है।

तो ये भी चलेगा

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

SetFlag बनाम addFlag के बीच के अंतर के बारे में शानदार व्याख्या, धन्यवाद
Pelanes

13

यदि आपके आवेदन में न्यूनतम sdk संस्करण 16 है तो आप उपयोग कर सकते हैं फिनिशएफ़िनिटी () का

इस गतिविधि को समाप्त करें और साथ ही साथ वर्तमान कार्य में इसके नीचे की सभी गतिविधियों को समान रूप से संपन्न करें।

यह मेरे लिए काम है शीर्ष भुगतान स्क्रीन में सभी बैक-स्टैक एक्टिविटीज को हटा दें,

@Override
public void onBackPressed() {
         finishAffinity();
        startActivity(new Intent(PaymentDoneActivity.this,Home.class));
    } 

http://developer.android.com/reference/android/app/Activity.html#finishAffinity%28%29


10

एक समाधान जो मैंने इसके लिए लागू किया (मुझे लगता है कि मैंने इसे स्टैक ओवरफ्लो पर कहीं पाया था, लेकिन मुझे याद नहीं है, इसलिए जिसने भी ऐसा किया है, उसके लिए धन्यवाद):

आपकी किसी भी गतिविधि से ऐसा होता है:

// Clear your session, remove preferences, etc.
Intent intent  = new Intent(getBaseContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

फिर अपने LoginActivity में onKeyDown को ओवरराइट करें:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

3
यह आमतौर पर एक बहुत बुरा विचार है, यह काम कर सकता है, यह संपर्क का एक बिंदु पेश करता है जो भविष्य में टूट सकता है और यह डिबग करना कठिन होगा। मैं आपको अनुभव से कह रहा हूं :)
मार्टिन मार्कोसिनी

10

एप्लिकेशन की अंतिम स्क्रीन पर लॉगआउट बटन के लिए, सभी खुले पिछली गतिविधियों को समाप्त करने के लिए लॉगआउट बटन श्रोता पर इस कोड का उपयोग करें, और आपकी समस्या हल हो गई है।

{
Intent intent = new Intent(this, loginScreen.class);
ntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}

8
    Intent i1=new Intent(getApplicationContext(),StartUp_Page.class);
i1.setAction(Intent.ACTION_MAIN);
i1.addCategory(Intent.CATEGORY_HOME);
i1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i1);
finish();

6
दो बार FLAG_ACTIVITY_CLEAR_TASK क्यों ?
चोलत्स्की

1
जो मैं समझता हूं, .setFlags पिछले झंडे की जगह लेता है और किसी भी झंडे को जोड़ता नहीं है। .addFlags वह है जो आप मुझे प्रिजर्व करना चाहते थे? I1.setFlags (Intent.FLAG_ACTIVITY_NEW_TAS | Intent.FLAG_ACTIVITY_CLEAR_TASK) के ऊपर सभी कोड का कारण; मिटा दिया जाता है
iOSAndroidWindowsMobileAppsDev

मेरे लिए addFlags वर्क्स
जमील

1
setFlags पिछले सभी को बदल देगा, इसलिए पिछले setFlags केवल मान्य है, पिछले को बदल दिया गया है। इसलिए आपको कॉल करने की आवश्यकता नहीं हैi1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
mtrakal

8

मेरे पास एक ही समस्या है जिसका आप IntentCompatइस तरह उपयोग कर सकते हैं :

import android.support.v4.content.IntentCompat;
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);

यह कोड मेरे लिए काम करता है।

एंड्रॉइड एपी 17


8

मेरे मामले में मैं finishAffinity()अंतिम गतिविधि में फ़ंक्शन का उपयोग करता हूं जैसे:

finishAffinity()
startHomeActivity()

आशा है कि यह उपयोगी होगा।



6

लॉग इन-> होम-> स्क्रीन 1-> स्क्रीन 2-> स्क्रीन 3-> स्क्रीन 4-> स्क्रीन 5

स्क्रीन 4 पर (या कोई अन्य) ->

StartActivity (लॉग इन करें)
साथ में
FLAG_ACTIVITY_CLEAR_TOP


2
जब मैं बैक बटन दबाता हूं तो सभी पिछली गतिविधियां उसी क्रम में दिखाई देती हैं, जब वे गतिविधियां बंद करने की आवश्यकता होती है, जब लॉगआउट बटन पर क्लिक किया जाता है, तो स्टैक में केवल एक गतिविधि होगी और वह लॉगिन गतिविधि होगी। और कोई भी नहीं है लॉगिन स्क्रीन। होम स्क्रीन से शुरू होता है।
तन्मय मंडल

6

एपीआई के लिए = = 15 से एपीआई 23 सरल समाधान।

 Intent nextScreen = new Intent(currentActivity.this, MainActivity.class);
 nextScreen.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
 startActivity(nextScreen);
 ActivityCompat.finishAffinity(currentActivity.this);

अपने उत्तर को विस्तृत करें ताकि हर कोई इससे लाभान्वित हो सके।
शुभमॉय

5

यदि आप startActivityForResult()अपनी पिछली गतिविधियों में उपयोग कर रहे हैं, तो बस ओवरराइड OnActivityResult()करें और finish();सभी गतिविधियों में इसके अंदर की विधि को कॉल करें .. यह काम करेगा ...


नहीं, मैं startActivityकेवल उपयोग कर रहा हूं ।
तन्मय मंडल

onActivityResultप्रत्येक गतिविधि को बनाए रखना मुश्किल होगा। मैंने डीएआरकेओ के सुझाव को लागू किया है और मेरे लक्ष्य और मदद के लिए धन्यवाद प्राप्त किया है।
तन्मय मंडल

3

जब उपयोगकर्ता लॉगआउट बटन पर क्लिक करें तो निम्नलिखित कोड लिखें:

Intent intent = new Intent(this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

और यह भी जब लॉगिन के बाद अगर आप नई गतिविधि कहते हैं तो फिनिश () का उपयोग न करें;


2

बस, जब आप लॉगिन स्क्रीन से जाते हैं, तो लॉगिन स्क्रीन को खत्म करते समय नहीं।

और फिर सभी आगे की गतिविधियों में, लॉगआउट के लिए इसका उपयोग करें:

final Intent intent = new Intent(getBaseContext(), LoginScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);

यह पूरी तरह से काम करता है।


1

यदि आप उपयोगकर्ता में लॉग इन करते हैं screen 1और वहां से आप अन्य स्क्रीन पर जाते हैं, तो उपयोग करें

Intent intent = new Intent(this, Screen1.class);
intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

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

यदि आप यह व्यवहार चाहते हैं , तो आपको अपनी प्रत्येक गतिविधि में (लॉगिन एक को छोड़कर) एंड्रॉइड वर्जन <2.0) का समर्थन करना होगा onKeyDownऔर onBackPressed( जैसा कि ऊपर दिखाया गया है) करना होगा। onKeyDownstartActivity(login)
गैब्रियल नेगट

मेरे पास एक बटन है जो मुझे स्टैक में सभी गतिविधियों को पूरा करने के लिए लॉगिन स्क्रीन पर ले जाएगा। क्या यह संभव है?
तन्मय मंडल

1

मैंने इस तरह पाया, यह सभी इतिहास और निकास को साफ कर देगा

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
Intent intent = new Intent(getApplicationContext(), SplashScreen.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

finish();
System.exit(0);

1

मुझे लगता है कि मुझे देर हो गई है लेकिन सरल और संक्षिप्त जवाब है। गतिविधि में एक फिनिशएफ़िनिटी () विधि है जो वर्तमान गतिविधि और सभी मूल गतिविधियों को समाप्त कर देगी, लेकिन यह केवल एंड्रॉइड 4.1 या उच्चतर में काम करता है।

एपीआई 16+ के लिए, का उपयोग करें

finishAffinity ();

नीचे 16 के लिए, का उपयोग करें

ActivityCompat.finishAffinity (YourActivity.this);

आशा है ये मदद करेगा!

shareedit ने 27 मई 18 को 8:03 बजे उत्तर दिया

अक्षय तरु


0

मुझे एपीआई स्तर के बावजूद हर डिवाइस पर काम करने का यह समाधान मिला (यहां तक ​​कि <11)

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
startActivity(mainIntent);

0

पिछली सभी गतिविधियों को बंद करने और मेमोरी को खाली करने का सबसे अच्छा तरीका है

finishAffinity()
System.exit(0);

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.