处理死亡时以编程方式取消注册BroadcastReceiver

时间:2016-10-26 11:35:28

标签: android memory-leaks android-broadcastreceiver kill-process

在我的应用程序中,我以编程方式注册BroadcastReceiver,并在适当的时间取消注册我的应用程序的业务逻辑。

 receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {...}

我想确保当我的应用程序进程意外死亡(被杀)时,接收器不会导致内存泄漏,是否可以执行我的选择?

(已经查看official docthis great articlethis SO thread

1 个答案:

答案 0 :(得分:3)

  

我想确保当我的应用程序的进程意外死亡(被杀)时,接收器不会导致内存泄漏,是否可以执行我的选择?

当一个应用程序进程被系统杀死(相当)时,与该进程相关的所有内容都“消失”了。不会出现应用程序组件(Fri Jan 01 00:00:00 CET 2016 20160101T000000Z ActivityService)方面的内存泄漏。

修改
当流程被杀BroadcastReceiver时,请使用ActivityManagerService方法here清除所有应用资源 您可以清楚地看到所有资源,包括所有已注册的广播接收器都被清理。(Ln. 15598