या क्या मुझे कॉल जानने के इरादे में कुछ अतिरिक्त डेटा भेजना चाहिए? यदि कोई पूर्वनिर्धारित विधि नहीं है, जैसे getIntent
और इसके साथ कुछ करें?कैसे पता चलेगा कि किसी गतिविधि को startActivityForResult का उपयोग करके बुलाया जाता है या जिसे स्टार्टएक्टिविटी का उपयोग करके बुलाया जाता है?
उत्तर
मैं इस सवाल का पता पहले से ही उत्तर है, लेकिन मैं एक बेहतर है समाधान ..
जब आपकी गतिविधि शुरू हुई थी एड startActivity()
द्वारा getCallingActivity()
लक्ष्य गतिविधि में विधि null
वापस आ जाएगी। जब इसे startActivityForResult()
द्वारा बुलाया गया था तो यह कॉलिंग गतिविधि का नाम वापस कर देगा। अधिक जानकारी के लिए
getCallingActivity देखें।
तो आप कॉलिंग गतिविधि के लिए परिष्करण से पहले गतिविधि में जांच सकते हैं। यदि परिणाम शून्य है तो startActivity()
द्वारा गतिविधि को बुलाया गया था और यदि परिणाम शून्य नहीं है तो गतिविधि startActivityForResult()
द्वारा बुलाया गया था। बस।
उदाहरण: -
if (getCallingActivity() == null) {
//This Activity was called by startActivity
} else {
//This Activity was called by startActivityForResult
}
आप इसे "0" और "1" जैसे ध्वज डाल सकते हैं, इसे इरादे में डाल सकते हैं, इसलिए अगर "0" तो इसकी शुरुआत एक्टिविटी या "1" स्टार्ट एक्टिविटीफॉर रिसेट के लिए ... यह आसान है, है ना?
इस तरह के गन्दा क्योंकि आप और अधिक डेटा की तुलना में आप वास्तव में जरूरत है संभाल है। @ पंकजकुमार से नीचे का जवाब सबसे साफ संभव है। – WarrenFaith
मुझे लगता है कि आपको अपने मैनिफेस्ट में एक ही गतिविधि के लिए कई इरादों का पर्दाफाश करना चाहिए, फिर अपने व्यवहार को अनुकूलित करने के लिए कॉलिंग मंशा का परीक्षण करें। अपनी गतिविधि onCreate में
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
और इसी कोड: प्रकट में अपनी गतिविधि को लक्ष्य फ़िल्टर के लिए
उदाहरण
if (getIntent().getAction().equals(Intent.ACTION_VIEW)) {
// do whatever you need to do here
} else if (getIntent().getAction().equals(Intent.ACTION_PICK)){
...
}
यह भी एक गड़बड़ दृष्टिकोण – Harinder
- 1. मुझे कैसे पता चलेगा कि RawInput का उपयोग करके शिफ्ट दबाया जाता है या नहीं?
- 2. textFieldShouldReturn नहीं बुलाया जाता है
- 3. getChildDrawingOrder को गलत तरीके से बुलाया/उपयोग किया जाता है?
- 4. ज़ेंड फ्रेमवर्क एक्शन को दो बार बुलाया जाता है
- 5. कैसे पता चलेगा कि जेएक्सबी कार्यान्वयन का क्या उपयोग किया जाता है?
- 6. मॉकिटो: जब विधि एए को बुलाया जाता है तो बीबी
- 7. ImmutableObjectAttribute का उपयोग कैसे किया जाता है?
- 8. इस स्लॉट को दो बार क्यों बुलाया जाता है?
- 9. एएसपी.नेट एमवीसी एक्शन को दो बार बुलाया जाता है
- 10. क्यों पाइथन में सूची समझ को बुलाया जाता है?
- 11. जावा अधिसूचित() को प्रतीक्षा करने से पहले बुलाया जाता है()
- 12. ऑनवलिडेट को लिंक में कब बुलाया जाता है?
- 13. क्या आईफोन पर डेलोक को बुलाया जाता है?
- 14. viewDidLoad बुलाया जाता है, viewWillAppear बुलाया नहीं होता है, दृश्य स्क्रीन
- 15. जीसीएम: GCMIntentService से मेमेज() को कई बार बुलाया जाता है?
- 16. PagerAdapter में GetCount को कितनी बार बुलाया जाता है?
- 17. यह निर्धारित करने के लिए कि विधि में कौन सी विधियों को बुलाया जाता है?
- 18. क्या ऐपडिलेगेट में कोई तरीका है जिसे एप्लिकेशन क्रैश होने पर बुलाया जाता है?
- 19. कक्षा के विनाशक को दो बार क्यों बुलाया जाता है?
- 20. ग्रहण में कैसे पता लगाएं यदि कुछ विधि सीधे या परोक्ष रूप से किसी अन्य विधि से बुलाया जाता है?
- 21. गतिविधि OnDestroy कभी नहीं बुलाया?
- 22. जब रचनाकार को जावा में बुलाया जाता है?
- 23. क्यों निर्माता को रिवर्स ऑर्डर में बुलाया जाता है?
- 24. है hasmmany का उपयोग करके:
- 25. एम्बर-डेटा कैसे पता चलेगा कि किसी इकाई को कब प्राप्त किया जाता है
- 26. लेआउट का उपयोग कैसे किया जाता है?
- 27. कैसे बताएं कि glibc का उपयोग किया जाता है
- 28. एप्लिकेशनडिड एंटरबैकग्राउंड हमेशा एप्लिकेशन से पहले बुलाया जाता है?
- 29. jQuery.ajax() सफलता/विफलता कॉलबैक कब बुलाया जाता है?
- 30. मुझे कैसे पता चलेगा कि 7zip AES256 का उपयोग करता है या नहीं?
इरादे के माध्यम से ध्वज की तुलना में एक क्लीनर समाधान है ... धन्यवाद – WarrenFaith
@WarrenFaith धन्यवाद। –
कृपया ध्यान दें कि 'प्रारंभिक गतिविधि का गतिविधि लॉन्च मोड' सिंगल टास्क 'या' सिंगल इंस्टेंस 'है, या 'FLAG_ACTIVITY_NEW_TASK' से शुरू हुआ है, तो' कॉलिंग एक्टिविटी() 'रिटर्न' शून्य 'प्राप्त करें। – EpicPandaForce