2012-01-06 22 views
12

क्या कोई मुझे सिंक्रोनस और एसिंक्रोनस एंड्रॉइड में गतिविधियों को समझने में मदद कर सकता है?सिंक्रोनस और एसिंक्रोनस गतिविधियां

वास्तव में क्या एंड्रॉयड में सिंक्रोनस और एसिंक्रोनस गतिविधि मतलब है?

StartActivity, StartSubActivity और StartAcivityForResult एक गतिविधि को सिंक्रनाइज़ या असीमित रूप से प्रारंभ करें, या वे दोनों तरीकों से व्यवहार कर सकते हैं?

कृपया के रूप में मैं कई लेख के माध्यम से चले गए हैं, लेकिन इस पर कोई उचित explaination नहीं पा सके समझाने।

+0

@ Dinesh..Your प्रश्न के रूप में [कड़ी] http एक ही है: // stackoverflow .com/प्रश्न/8613295/अंतर-बीच-सिंक्रोनस-गतिविधियां-ans-asynchronous-activities [link] और आपने इस पोस्ट पर भी जवाब दिया है। तो आप एक ही सवाल क्यों पूछ रहे हैं। इसके अलावा AFAIK शुरू होता है SubActivity को सार्वजनिक रूप से कभी भी जारी नहीं किया जाता है और इसकी कार्यक्षमता startActivityForResult() – Maverick

+0

द्वारा प्रदान की जाती है टिप्पणी के लिए धन्यवाद रवि। मैंने उस सवाल का जवाब दिया लेकिन मैं अभी भी इस अवधारणा पर थोड़ा उलझन में हूं। तो 100% स्पष्ट होना चाहते हैं। यदि आपके पास इस पर कुछ विचार है, तो आप मेरे साथ साझा कर सकते हैं ... :) –

+1

"क्या कोई मुझे एंड्रॉइड में सिंक्रोनस और एसिंक्रोनस गतिविधि की व्याख्या करने में मदद कर सकता है।" - एंड्रॉइड में ऐसी कोई अवधारणा नहीं है। – CommonsWare

उत्तर

17

सबसे पहले, केवल एक ही गतिविधि Android पर एक समय में चल जा सकता है, तो आप दो गतिविधियों एक ही समय में चल रहा है कभी नहीं होगा। startActivity() का उपयोग करें जब आप "आग लगाना और भूलना" चाहते हैं, यानी, आप एक गतिविधि लॉन्च करना चाहते हैं लेकिन यह आपकी गतिविधि के लिए मूल्य वापस करने की अपेक्षा नहीं कर रहे हैं। उस स्थिति में, नई गतिविधि शुरू हो जाएगी और आपकी गतिविधि रोका जाएगा; उपयोगकर्ता आपकी गतिविधि पर लौटने के बाद अंततः नियंत्रण प्राप्त कर सकता है।

उपयोग startActivityForResult() जब आप गतिविधि आप लॉन्च कर रहे हैं से एक परिणाम expecing कर रहे हैं। इस मामले में, कॉलिंग गतिविधि को onActivityResult() ओवरराइड करना चाहिए, जिसे लॉन्च किया गया गतिविधि तब निकल जाएगी जब आपके पास वापस लौटने का परिणाम होगा (जिसे यह setResult() के साथ सेट करता है)।

दोनों मामलों में, के बाद से बुला गतिविधि और कहा जाता है गतिविधि ही कार्य में हैं, यह "तुल्यकालिक" एक निश्चित अर्थ में है (हालांकि मैं "तुल्यकालिक" और "अतुल्यकालिक" शब्दों का उपयोग करके लगता है में भ्रामक हो सकते हैं यह संदर्भ)। कॉलिंग गतिविधि तब तक स्क्रीन पर दिखाई नहीं देगी जब तक कि कॉल की गई गतिविधि समाप्त न हो जाए।

अधिक जानने के लिए एक उपयोगी पढ़ा है: * http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

- ब्रूनो ओलिविएरा (एंड्रॉयड डेवलपर संबंध, गूगल)

+1

त्वरित उत्तर के लिए धन्यवाद ब्रूनो। लेकिन मुझे समझ में आता है कि "सिंक्रोनस" और "एसिंक्रोनस" शब्द का उपयोग किस प्रकार किया गया है जैसा कि मैंने कई स्थानों पर देखा है, इस प्रकार का प्रश्न उठता है .... –

+3

सिंक्रोनस का अर्थ है कि एक निश्चित कार्य समाप्त होने तक निष्पादन जारी नहीं रहेगा । यदि 'स्टार्ट एक्टिविटी' इस तरह से काम करता है, तो अन्य इंटरफ़ेस तब तक स्थिर हो जाएगा जब तक अन्य गतिविधि चल रही न हो।असिंक्रोनस का अर्थ है कि आपका कार्य भविष्य में कहीं भी होगा, और इस बीच निष्पादन जारी रहेगा: आप अनुरोध करते हैं कि एक गतिविधि शुरू हो जाए, और आपका कोड यह जानकर जारी रहेगा कि यह अंततः होगा। – slezica

+1

उत्तर सही प्रश्न को संबोधित नहीं कर रहा है। –

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