2010-03-31 22 views
108

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

इसे पूरा करने का सबसे अच्छा तरीका कैसा है? उपयोगकर्ता ने नई गतिविधि लॉन्च करने के तुरंत बाद मैं इस गतिविधि को कैसे मार या नष्ट कर सकता हूं?

उत्तर

190

तुम बस जब भी यह से दूर नेविगेट किया है ढेर से एक गतिविधि को हटा देगा finish()

Intent intent = new Intent(this, NextActivity.class); 
startActivity(intent); 
finish(); 
+0

धन्यवाद। इसे एक कदम आगे ले जाने के लिए, मैं एक संवाद विंडो से नई गतिविधि शुरू कर रहा हूं - क्या कोड उसी तरह काम करेगा? – JohnRock

+0

@CaseyB इसके लिए धन्यवाद .. लेकिन मैं जानना चाहता हूं, क्या मैं इस विधि को सेवा से कॉल कर सकता हूं यदि हां तो कैसे? – swiftBoy

+1

सेवाओं में कोई गतिविधि नहीं है जिसका अर्थ है कि वे वापस जाने के लिए गतिविधि स्टैक में नहीं होंगे। अगर आप अपनी सेवा से कुछ गतिविधि को मारना चाहते हैं तो आप myActivity.finish() को कॉल करने में सक्षम होना चाहिए; – CaseyB

88

अपने मेनिफ़ेस्ट में गतिविधि पर android:noHistory="true" स्थापना कॉल करने के लिए की जरूरत है। देखें here

7

हां, आपको केवल उस गतिविधि में कॉल फिनिश() करना है जिसे आप बंद करना चाहते हैं। प्रत्येक "नई गतिविधि" के बाद आप प्रारंभ

4

लिखें यह आपका नया intent->

Intent i = new Intent(this, yourClass.class); 
startActivity(i); 
finish(); 
6

आप का उपयोग कर सकते हैं:

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
4

तुम भी AndroidManifest.xml में अपने Activity टैग करने के लिए android:noHistory="true" जोड़ सकते हैं।

<activity 
      ... 
      android:noHistory="true"> 
</activity> 
0

यह विशेषता आपको प्रकट फ़ाइल में गतिविधि में जोड़ें। एंड्रॉइड: noHistory = "true"

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

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