我建立一個庫,它具有以下結構:如何避免廣播接收器泄漏
MySDK{
public static void init(Context context){
registerReceivers(); // Register connectivity BroadcastReceiver here
}
public static void performAction(){};
}
的預期用途是:我的庫調用的init()第一活動的用戶他們創造。問題是我沒有取消註冊BroadcastReceiver,它在應用程序關閉時泄漏。我可以創建一個名爲deinit()的方法,並要求lib的用戶在離開活動時調用它,但有沒有更可靠的方式來釋放資源?
爲什麼我需要接收器嗎?
如果沒有互聯網連接並且performAction()無法發送數據,我註冊接收器來檢測連接狀態的變化。
只有在第一項活動中需要廣播接收機還是需要更長時間? – Simon
@Simon查看更新。我會一直需要接收器。 –
創建註冊此接收器的服務。 –