2013-05-25 17 views
55

के लिए गतिविधि को बुलाया गया है, क्या यह जानना संभव है कि परिणामस्वरूप कुछ गतिविधि को startActivityForResult() का उपयोग करके या startActivity() का उपयोग करना शुरू किया गया था?जांचें कि क्या परिणाम

मुझे इसे नियंत्रित करने की आवश्यकता है, अगर इसके परिणामस्वरूप कहा जाता है तो व्यवहार अलग होगा।

उत्तर

117

जब आपकी गतिविधि startActivity()getCallingActivity() लक्ष्य गतिविधि में विधि null लौटा दी जाएगी।

जब इसे startActivityForResult() द्वारा बुलाया गया था तो यह कॉलिंग गतिविधि का नाम वापस कर देगा।

getCallingActivity() के लिए दस्तावेज़ देखें:

वापसी गतिविधि कि इस गतिविधि लागू का नाम है। यह है जो setResult() में डेटा भेजा जाएगा। आप जानकारी का उपयोग यह सत्यापित करने के लिए कर सकते हैं कि प्राप्तकर्ता को डेटा प्राप्त करने की अनुमति है।

नोट: यदि बुला गतिविधि एक परिणाम की उम्मीद नहीं कर रहा है (जो है यह startActivityForResult(Intent, int) रूप है कि एक अनुरोध कोड भी शामिल है का उपयोग नहीं किया है), तो बुला पैकेज अशक्त हो जाएगा।

रिटर्न

गतिविधि जो आपके उत्तर प्राप्त होगा की ComponentName, या नल अगर कोई नहीं।

+0

यही मुझे चाहिए :) धन्यवाद! – TiagoM

+0

यदि आप इस गतिविधि को प्रारंभ करते हैं: FLAG_ACTIVITY_NEW_TASK, यह काम नहीं करता है :((मुझे एक त्रुटि हैंडलर में संदर्भ से लॉगिन गतिविधि शुरू करना पड़ा था)। कोई अन्य विचार? धन्यवाद! – bentzy

+0

यह गतिविधि काम नहीं करती है एक टुकड़े के साथ शुरू किया: fragment.getActivity()। startActivityForResult (इरादा, अनुरोध कोड); –

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