मेरे एप्लिकेशन की सभी गतिविधियों के लिए उपयोगकर्ता को लॉग-इन करने की आवश्यकता है। उपयोगकर्ता लगभग किसी भी गतिविधि से लॉग आउट कर सकते हैं। यह आवेदन की एक आवश्यकता है। किसी भी बिंदु पर अगर उपयोगकर्ता लॉग-आउट करता है, तो मैं उपयोगकर्ता को लॉगिन पर भेजना चाहता हूं Activity
। इस बिंदु पर मैं चाहता हूं कि यह गतिविधि इतिहास स्टैक के निचले भाग पर हो ताकि "बैक" बटन दबाकर उपयोगकर्ता एंड्रॉइड की होम स्क्रीन पर लौट आए।
मैंने देखा है कि यह सवाल कुछ अलग-अलग स्थानों पर पूछा गया है, सभी ने समान उत्तरों के साथ उत्तर दिया (जो कि मैं यहां बता रहा हूं), लेकिन मैं प्रतिक्रिया प्राप्त करने के लिए इसे यहां प्रस्तुत करना चाहता हूं।
मैंने अपने Intent
झंडे सेट करके लॉगिन गतिविधि खोलने की कोशिश की है, FLAG_ACTIVITY_CLEAR_TOP
जो ऐसा लगता है जैसे कि प्रलेखन में उल्लिखित है, लेकिन इतिहास स्टैक के निचले भाग में लॉगिन गतिविधि रखने और उपयोगकर्ता को वापस नेविगेट करने से रोकने के मेरे लक्ष्य को प्राप्त नहीं करता है। पहले से देखी गई लॉग-इन गतिविधियों के लिए। मैंने android:launchMode="singleTop"
मेनिफ़ेस्ट में लॉगिन गतिविधि का उपयोग करने का भी प्रयास किया , लेकिन यह मेरे लक्ष्य को पूरा नहीं करता है (और वैसे भी इसका कोई प्रभाव नहीं है)।
मेरा मानना है कि मुझे इतिहास स्टैक को या तो साफ करने की जरूरत है, या पहले से खोली गई सभी गतिविधियों को खत्म करना है।
एक विकल्प यह है कि प्रत्येक गतिविधि की onCreate
जाँच लॉग-इन स्थिति और finish()
यदि लॉग-इन नहीं है। मुझे यह विकल्प पसंद नहीं है, क्योंकि बैक बटन अभी भी उपयोग के लिए उपलब्ध होगा, गतिविधियों को खुद को बंद करने के रूप में वापस नेविगेट करना।
अगला विकल्प उन LinkedList
सभी खुली गतिविधियों के संदर्भों को बनाए रखना है जो हर जगह से सांख्यिकीय रूप से सुलभ हैं (शायद कमजोर संदर्भों का उपयोग करके)। लॉगआउट करने पर, मैं इस सूची तक पहुंच पाऊंगा और सभी पहले से खोली गई गतिविधियों पर पुनरावृत्ति करूंगा, finish()
हर एक पर आह्वान करूंगा । मैं शायद जल्द ही इस विधि को लागू करना शुरू कर दूंगा।
मैं इसे Intent
पूरा करने के लिए कुछ ध्वज प्रवंचना का उपयोग करूंगा । मुझे यह जानकर ख़ुशी होगी कि मैं अपने आवेदन की उन आवश्यकताओं को पूरा कर सकता हूँ, जिनका उपयोग मैंने उन दोनों विधियों में से किया है, जिन्हें मैंने ऊपर उल्लिखित किया है।
Intent
सेटिंग्स का उपयोग करके या प्रकट करके इसे पूरा करने का एक तरीका है , या मेरा दूसरा विकल्प है, LinkedList
खुली गतिविधियों को बनाए रखना सबसे अच्छा विकल्प है? या फिर एक और विकल्प है कि मैं पूरी तरह से देख रहा हूँ?