2010-09-22 23 views
7

में आगे की गतिविधियों को स्विच करना मैं एंड्रॉइड से शुरू कर रहा हूं और कई गतिविधियों के बीच स्विच करने पर एक शुरुआती प्रश्न प्राप्त कर रहा हूं।एंड्रॉइड

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

तो मूल रूप से मेरे पास 3 गतिविधियां हैं: गतिविधि 1, गतिविधि 2 और एंटीटीविटी 3।

मैं गतिविधि 1 से शुरू करता हूं और फिर गतिविधि के साथ गतिविधि 2 का आह्वान करता हूं, और गतिविधि 2 गतिविधि 3 को आमंत्रित करता है। बटन का उपयोग करना अब मैं गतिविधि 3 से गतिविधि 1 पर वापस आना चाहता हूं। मैं भी वही काम करता हूं। एक इरादा बनाएं और प्रारंभ करें सक्रियता (गतिविधि 1_इन्टेंट)। लेकिन यह एक रनटाइम त्रुटि देता है।

मुझे लगता है कि मुझे ऑनर्यूसम() या ऑनस्टार्ट() को लागू करने की आवश्यकता है, लेकिन मुझे यकीन नहीं है कि यह कैसे करें। ऑनक्रेट() में मैं एक ग्रिड व्यू करता हूं, इसलिए जब मैं वापस आ जाता हूं, तो क्या मुझे उस ग्रिड व्यू को दोबारा बनाने की ज़रूरत है?

यदि कोई ट्यूटोरियल के संदर्भ में एक छोटा सा स्पष्टीकरण दे सकता है तो यह बहुत अच्छा होगा। बहुत बहुत धन्यवाद।

+0

यदि आप कोड को पोस्ट कर सकते हैं जो रन टाइम त्रुटि का कारण बनता है और त्रुटि के स्टैकट्रैक भी हम अपने उत्तरों में अधिक विशिष्ट हो सकते हैं। – Janusz

+0

एक और शुरू करने से पहले पहली गतिविधि खत्म करें। –

उत्तर

7

अपनी मेनिफेस्ट फ़ाइल में एंड्रॉइड सेट करें: launchMode = "singleTop" आपकी गतिविधि 1 में।

फिर अपने Activity1 उपयोग कॉल करने के लिए:

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

FLAG_ACTIVITY_CLEAR_TOP: यदि सेट है, और शुरू किया जा रहा गतिविधि पहले से ही वर्तमान कार्य में, तो, के सभी चल रहा है बजाय कि गतिविधि का एक नया उदाहरण की शुरूआत इसके शीर्ष पर अन्य गतिविधियां बंद हो जाएंगी और यह इरादा एक नई मंशा के रूप में (अब शीर्ष पर) पुरानी गतिविधि को दिया जाएगा।

FLAG_ACTIVITY_NEW_TASK: यदि सेट है, तो यह गतिविधि इस इतिहास के ढेर पर एक नए कार्य की शुरुआत बन जाएगी।

http://developer.android.com/reference/android/content/Intent.html

1

Android 4.0 के बाद से आप बस मालसूची फ़ाइल एंड्रॉयड में सेट कर सकते हैं: launchMode = "singleTask" और उसके बाद जावा लिखने के लिए कोई आवश्यकता नहीं है।