मैं एक पुस्तकालय है, जो निम्नलिखित संरचना है निर्माण कर रहा हूँ:मैं कैसे बच करते BroadcastReceiver रिसाव
MySDK{
public static void init(Context context){
registerReceivers(); // Register connectivity BroadcastReceiver here
}
public static void performAction(){};
}
इरादा उपयोग है: मेरे पुस्तकालय) कॉल init (प्रथम गतिविधि में के उपयोगकर्ताओं वो बनाते हैं। समस्या यह है कि मैं ब्रॉडकास्ट रिसीवर अनधिकृत नहीं करता हूं और ऐप बंद होने पर यह लीक हो जाता है। मैं deinit() नामक एक विधि बना सकता हूं और गतिविधि छोड़कर lib को कॉल करने के लिए कह सकता हूं, लेकिन क्या संसाधनों को मुक्त करने के लिए मेरे पास एक और अधिक विश्वसनीय तरीका है?
क्यों मुझे रिसीवर की आवश्यकता है?
यदि कोई इंटरनेट कनेक्शन नहीं है और निष्पादन() डेटा नहीं भेज सकता है, तो मैं कनेक्टिविटी राज्य परिवर्तन का पता लगाने के लिए रिसीवर पंजीकृत करता हूं।
ब्रॉडकास्ट रिसीवर केवल पहली गतिविधि में आवश्यक होगा या क्या उन्हें अधिक समय की आवश्यकता होगी? – Simon
@ सिमॉन अपडेट देखें। मुझे हर समय रिसीवर की आवश्यकता होगी। –
एक ऐसी सेवा बनाएं जो इस रिसीवर को पंजीकृत करे। –