我正在构建一个库,它具有以下结构:
MySDK{
public static void init(Context context){
registerReceivers(); // Register connectivity BroadcastReceiver here
}
public static void performAction(){};
}
预期用途是:我的库的用户在他们创建的第一个活动中调用init() 。问题是我没有取消注册BroadcastReceiver并且在应用程序关闭时它会泄漏。我可以创建一个名为deinit()的方法,并要求 lib 的用户在离开Activity时调用它,但是有没有更可靠的方法让我释放资源?
为什么需要接收器?
如果没有 Internet 连接并且performAction()无法发送数据,我注册接收器以检测连接状态变化。