ऐतिहासिक, यह ReceiverRestrictedContext
का एक उदाहरण है, लेकिन इस वर्ग के हाल के Android संस्करण में चला गया है (नहीं जो एपीआई स्तर वास्तव में करते हैं, लेकिन यह एपीआई 26 सूत्रों में मौजूद नहीं है), यह है, इसलिए अब आपका आवेदन संदर्भ होना चाहिए।
ReceiverRestrictedContext
BroadcastReceiver
से BroadcastReceiver
पंजीकृत करने से रोका।
के बाद से ReceiverRestrictedContext
का एक उदाहरण हर बार अपने BroadcastReceiver
instantiated है बन जाता है, आप इसे एक घटक के पास नहीं कर रहा एक जीवन चक्र अपने से अधिक समय (बहुत ही कम रहता) होने BroadcastReceiver
के प्रति सतर्क रहने है, या आप इन पर मेमोरी लीक पैदा करेगा पुराना (अभी तक इतना नहीं) एंड्रॉइड संस्करण जिनके पास यह ReceiverRestrictedContext
है।
आप सुरक्षित रूप से getApplicationContext()
पर कॉल कर सकते हैं और इसके परिणामस्वरूप लंबे समय तक रहने वाले घटक को पास कर सकते हैं।
ध्यान दें कि तथ्य ReceiverRestrictedContext
हाल के एंड्रॉइड संस्करणों से चला गया है इसका मतलब यह नहीं है कि आप "BroadcastReceiverCeption" बना सकते हैं!
स्रोत
2017-11-23 09:37:01
यह एक एप्लिकेशन संदर्भ हो सकता है, लेकिन यह उस संदर्भ का एक प्रतिबंधित संस्करण है। 'संदर्भ' के लिए एंड्रॉइड स्रोत कोड में इसे 'रिसीवर रेस्ट्रिक्टेड कॉन्टेक्स्ट' के रूप में जाना जाता है और यह संदर्भ कुछ रजिस्टर जैसे 'रजिस्टर रिसीवर() 'और' बाइंड सर्विस()' की अनुमति नहीं देता है। यदि आपको वास्तव में 'ऑनसेसिव()' में एक एप्लिकेशन संदर्भ की आवश्यकता है तो आपको 'context.getAplicationContext() ' –
@ coder_For_Life22 कॉल करने की आवश्यकता है किस एप्लिकेशन का संदर्भ? प्रसारित करने वाला प्रसारण या एप्लिकेशन भेजने वाला एप्लिकेशन? – Bhargav