अनुरोध कोड स्वचालित रूप से प्रारंभिक गतिविधि को पास नहीं किया गया है क्योंकि यह डी इस मूल्य को जानने की आवश्यकता नहीं है (और नहीं)। इसे केवल यह जानने की जरूरत है कि क्या करना है और यह कहां से शुरू किया गया था।
एक गतिविधि शुरू करना वास्तव में एक विधि को कॉल करने का एक और रूप है। जब आप कोई विधि कॉल करते हैं, तो आप परिणाम को समकालिक रूप से प्राप्त करते हैं (ठीक वहीं जहां आपने कॉल किया था)। इस मामले में आप केवल उस जानकारी में गुजर रहे हैं जिस विधि को अपना काम करने की आवश्यकता है। आप यह नहीं कह रहे हैं कि आपने इसे कहां से बुलाया था।
एक गतिविधि शुरू करना एक विधि को कॉल करने के एसिंक्रोनस एनालॉग है, जिस स्थिति में आपको एक्टिविटी रिसैट() पर विशेष विधि में परिणाम मिलता है। इस विधि में, आपको यह जानने की जरूरत है कि आपको जो परिणाम मिला है उसके साथ क्या करना है और आपके पास इसके लिए अनुरोध कोड है।
इसे थोड़ा स्पष्ट करने के लिए अनुरोध कोड को पैरामीटर के रूप में पास करना क्यों अच्छा नहीं है, उदाहरण गतिविधि पर विचार करें जो आप खरीद सकते हैं। इस गतिविधि पर "खरीदें" और "लॉगिन" लेबल वाले दो बटन हैं (जैसा कि आप वर्तमान में लॉग इन नहीं हैं)। "लॉगिन" दबाकर "लॉगिन" नामक गतिविधि शुरू होगी जो प्रदान की गई जानकारी का उपयोग कर उपयोगकर्ता में लॉग इन करने का प्रयास करेगी। "खरीदें" दबाकर पहली बार "लॉगिन" गतिविधि शुरू हो जाएगी और यदि लॉगिन सफल हुआ, तो खरीद गतिविधि शुरू करें।
अब, "लॉगिन" बटन लॉगिन गतिविधि शुरू करने के लिए अनुरोध कोड 1 का उपयोग करता है, लेकिन "खरीदें" बटन उसी अनुरोध कोड का उपयोग नहीं कर सकता है क्योंकि लॉगिन सफल होने पर इसे कुछ अलग करना होगा। तो, "खरीदें" बटन अनुरोध कोड का उपयोग करता है 2.
"लॉगिन" गतिविधि में आपको दो अलग-अलग अनुरोध कोड प्राप्त हो सकते हैं, जहां से इसे कहलाया गया था, लेकिन आपको एक ही प्रक्रिया करने की आवश्यकता होगी।
इसलिए, यदि आप एक पैरामीटर के रूप अनुरोध कोड में पास, आप कोड अलग अनुरोध कोड के एक जोड़े के लिए एक ही सामान के लिए जरुरी है कि, जैसे के साथ खत्म हो जाएगा:
if (requestCode == LOGIN || requestCode == BUY) {
// ...
} else ...
तुम भी होगा केंद्रीय स्थान में अनुरोध कोड स्थिरांक को संग्रहीत करने के साथ समाप्त करें RequestCodes नाम की एक कक्षा।
संक्षेप में, अनुरोध कोड का उपयोग केवल यह तय करने के लिए किया जाना चाहिए कि प्राप्त परिणाम के साथ क्या करना है। इस तरह आप एक अधिक मॉड्यूलर, बनाए रखने के लिए आसान और कोड का विस्तार करने में आसान के साथ खत्म हो जाएगा।
वहाँ वास्तव में एक बच्चे गतिविधि अपने अनुरोध प्राप्त करने के लिए कोई रास्ता नहीं है कोड? –
अब तक मेरे सबसे अच्छे ज्ञान तक, मुझे कोई दूसरा रास्ता नहीं लगता है। –
वही बात सोच रहा था - यह एंड्रॉइड एपीआई में उन चीजों में से एक है जो कोई तार्किक अर्थ नहीं बनाते हैं। –