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