एंड्रॉइड में, यदि आप अपने वर्तमान Activity
स्टैक को साफ़ करना चाहते हैं और एक नया Activity
लॉन्च करना चाहते हैं (उदाहरण के लिए, ऐप से लॉग आउट करना और Activity
में लॉग लॉन्च करना), तो दो दृष्टिकोण दिखाई देते हैं।गतिविधि.फिनिशएफ़िनिटी() बनाम इरादा। FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
यदि आपका लक्ष्य API स्तर 16 से ऊपर है तो क्या एक दूसरे के लिए कोई फायदे हैं?
1) समाप्त संबंध
कॉलिंग एक गतिविधि से finishAffinity()
। Activity.finishAffinity
2) आशय झंडे
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
finishAffinity()
दृष्टिकोण> = एपीआई 16.
Intent
झंडे दृष्टिकोण के लिए उपयुक्त है> = एपीआई 11.
के लिए उपयुक्त है स्पष्ट होने के लिए, मौजूदा Activity
स्टैक को साफ़ करने के उद्देश्य से, दोनों दृष्टिकोण समान रूप से काम करने लगते हैं। मेरा सवाल यह है कि क्या समस्याएं हैं या तो लोगों ने अनुभव किया है और इसलिए, क्या एक दूसरे को चुनने का कोई कारण है?
विलंब, या झिलमिलाहट, जिसका आपने उल्लेख किया है प्रारंभ में मुझे प्रश्न खत्म करने के लिए बनाया गया है()। आईआईआरसी, कुछ सैमसंग उपकरणों को विशेष रूप से फिनिशएफ़िनिटी() का उपयोग करते समय एक बहुत ही स्पष्ट झिलमिलाहट था, लेकिन अब मेरे पास परीक्षण करने के लिए डिवाइस नहीं हैं। –
इस मामले में यह इरादा संस्करण था जिसमें वीडियो के अनुसार झिलमिलाहट थी। – brindy
असल में, मुझे यकीन नहीं है कि मैं इसे एक झिलमिलाहट (vide के आधार पर) कहूंगा। यद्यपि यद्यपि क्या होता है इसके बारे में कुछ निश्चित रूप से अलग है। खत्म एफ़िनिटी दिखता है जैसे यह शीर्ष पर दिखाई देता है, इरादा संस्करण ऐसा लगता है कि यह स्टैक के शीर्ष पर दूसरे को प्रकट करने के लिए "समाप्त" हो गया है। – brindy