मैं वास्तव में Fragment
lifecycle के साथ भ्रमित हो जाता हूं, खासकर getActivity()
पर कॉल करने के लिए। कभी-कभी getActivity()
द्वारा आपको Activity
नहीं मिल सकता है। और यह हमेशा कुछ परेशान बग का कारण बनता है।
कोई भी व्यक्ति पहेली को हल करने के लिए धन्यवाद।हम getActivity() को getCreView में क्यों कॉल कर सकते हैं जो सक्रियता से पहले चलाया जाता है?
उत्तर
getActivity()
शून्य हो सकता है जबकि आपका टुकड़ा तैयारी की प्रक्रिया में है और तैयार होने के बारे में है।
खंड जीवन चक्र कॉलबैक विधियों के लिए बाध्य है। इन पद्धतियों को समय में कहीं भी कहा जाएगा जबकि टुकड़ा तैयारी कर रहा है।
- Fragment.onActivityCreated(Bundle) जगह जब टुकड़ा गतिविधि अशक्त नहीं होगा, अर्थात
getActivity()
एक वैध उदाहरण होगा। यह तब होता है के बादonCreateView()
हालांकि
गतिविधि अस्तित्व के लिए आपका सबसे सुरक्षित शर्त है:
क्या होगा यदि मुझे क्रिएट में एडाप्टर बनाने के लिए कोई गतिविधि चाहिए? –
मुझे 'फ्रैगमेंट.ऑन व्यूक्रेटेड (व्यू, बंडल)' में 'एक्टिविटी() == नल' मिल गया है, इसलिए यह सुरक्षित नहीं है, इसलिए आपको हमेशा यह जांचना होगा कि क्या GetActivity()'CreateView() 'में शून्य नहीं है, 'onViewCreated()' और यहां तक कि 'onResume()' –
हम चीजों पर शर्त नहीं लगाते हैं। या तो इसे ATAachach() में मान्य गतिविधि माना जाता है या यह नहीं है। GetActivity() के उपयोग के लिए स्पष्ट उत्तर क्यों नहीं है? –
- 1. क्या हम एडाप्टर से startActivityForResult को कॉल कर सकते हैं?
- 2. हम इलीक्सिर में आसानी से कॉल कैसे कर सकते हैं?
- 3. जब हमें कोई विनाशक नहीं है तो हम SuppressFinalize को क्यों कॉल कर सकते हैं
- 4. ContentProvider.onCreate() को एप्लिकेशन.ऑनक्रेट() से पहले क्यों कॉल किया जाता है?
- 5. क्या हम Servlet में नष्ट() विधि से सेवा() विधि को कॉल कर सकते हैं?
- 6. हम क्यों कॉल करते हैं NotRecognizeSelector: विधि?
- 7. क्या हम कर्नेल स्पेस में सिस्टम कॉल को कॉल कर सकते हैं?
- 8. हम स्ट्रेटर पॉइंटर को स्ट्रिंग क्यों नहीं कॉपी कर सकते हैं जब हम सीधे स्ट्रिंग असाइन कर सकते हैं?
- 9. क्या हम स्ट्रिंग को रैपर वर्ग के रूप में कॉल कर सकते हैं?
- 10. सी # हम स्थिर संपत्ति को ओवरराइड क्यों नहीं कर सकते?
- 11. PHP में max_execution_time शॉर्टडाउन फ़ंक्शंस को प्रभावित करता है जो register_shutdown_function() कॉल के माध्यम से चलाया जाता है?
- 12. क्या हम sandcastle तेज कर सकते हैं?
- 13. आवेदन को कम करने के बाद हम विधि को कॉल कर सकते हैं?
- 14. हम `...` पर क्यों लूप नहीं कर सकते?
- 15. हम जावा में पॉइंटर्स का उपयोग क्यों नहीं कर सकते?
- 16. हम मूल्य प्रकार को क्यों लॉक नहीं कर सकते?
- 17. क्या कॉलर कन्स्ट्रक्टर को कॉल करने से पहले तर्कों की वैधता की जांच कर सकते हैं?
- 18. हम JBOSS से डेटाबेस कनेक्शन कैसे कॉन्फ़िगर कर सकते हैं?
- 19. हम किबाना से कैसे पूछ सकते हैं?
- 20. क्या हम पृष्ठभूमि में आईबीकॉन ट्रांसमीटर शुरू कर सकते हैं?
- 21. हम इकाई फ्रेमवर्क में ऑब्जेक्ट फ़िल्टरिंग कैसे कर सकते हैं?
- 22. जावा एप्लिकेशन से बाहर निकलने से पहले कोड का एक टुकड़ा कैसे चलाया जाता है
- 23. क्या हम एसडीएल ट्रिडियन में माइग्रेट कर सकते हैं?
- 24. हम संग्रहित प्रक्रिया से एक शून्य वापस कर सकते हैं
- 25. क्या हम सीधे नोड्स को नोडलिस्ट से निकाल सकते हैं?
- 26. क्या हम * .dll.config को ऑटोकॉपी कर सकते हैं?
- 27. क्या हम एंड्रॉइड में एक फ़ोल्डर एन्क्रिप्ट कर सकते हैं?
- 28. तेजी से क्यों हम NSObject से विरासत के बिना एक प्रोटोकॉल अपनाने नहीं कर सकते हैं?
- 29. हम क्यों नहीं कर सकते हैं ** एक विधि में 'स्वयं' को अनप्लग करें?
- 30. हम इंटरफेस क्यों कार्यान्वित कर रहे हैं?
प्रासंगिक कोड उदाहरण कृपया! – alfasin
[फ्रैगमेंट्स दस्तावेज] से (http://developer.android.com/guide/components/fragments.html): 'सावधानी: यदि आपको अपने टुकड़े के भीतर एक संदर्भ वस्तु की आवश्यकता है, तो आप getActivity() को कॉल कर सकते हैं। हालांकि, जब एक्टिवेशन गतिविधि से जुड़ा होता है तो केवल getActivity() को कॉल करने के लिए सावधान रहें। जब टुकड़ा अभी तक जुड़ा हुआ नहीं है, या अपने जीवन चक्र के अंत में अलग किया गया था, तो निष्क्रियता() शून्य वापस आ जाएगी। तो इसे 'ऑन अटैच' से बुलाया जाना चाहिए। –
@EricMartinez मुझे नहीं लगता कि यह दस्तावेज़ीकरण की सही व्याख्या है। मेरी समझ यह है कि चूंकि एटैच() को कॉल करने पर गतिविधि से जुड़ा हुआ है, तो यह निम्नलिखित जीवन चक्र विधियों जैसे ऑनक्रेट() और ऑनक्रेट व्यू() पर भी उपलब्ध होना चाहिए, भले ही यह भ्रमित हो कि उन्हें एक्टिविटी पर पहले कहा जाता है()। वैसे भी, मुझे getEctivity() पर getActivity() पर कॉल करते समय कभी भी शून्य नहीं मिल रहा है, और मैंने लिखा है कि सभी एंड्रॉइड ऐप्स ने ऐसा किया है। – RenniePet