Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 泄漏的监视接收器_Java_Android_Android Intent_Broadcastreceiver - Fatal编程技术网

Java 泄漏的监视接收器

Java 泄漏的监视接收器,java,android,android-intent,broadcastreceiver,Java,Android,Android Intent,Broadcastreceiver,我的onCreate()中有以下代码: 此行似乎抛出以下错误:活动泄漏了最初在此处注册的IntentReceiver。是否缺少对unregisterReceiver()的调用? 我只是不明白这是怎么可能的-我完全卸载了我的应用程序,然后再次安装,这是整个应用程序中唯一的接收器注册。有人知道出了什么问题吗?您需要在onPause中注销接收器: @Override protected void onPause() { // Unregister since the activity is not

我的onCreate()中有以下代码:

此行似乎抛出以下错误:
活动泄漏了最初在此处注册的IntentReceiver。是否缺少对unregisterReceiver()的调用?


我只是不明白这是怎么可能的-我完全卸载了我的应用程序,然后再次安装,这是整个应用程序中唯一的接收器注册。有人知道出了什么问题吗?

您需要在onPause中注销接收器:

@Override
protected void onPause() {
  // Unregister since the activity is not visible
  LocalBroadcastManager.getInstance(this).unregisterReceiver(onComplete);
  super.onPause();
}

您是否注销了接收器?两点:OP似乎没有使用LocalBroadcastManager,因此应该只使用
活动。unregisterReceiver(…)
;其次(对OP来说),在活动生命周期(onCreate/onDestroy;onStart/onStop;或onResume/onPause)中的匹配方法对中注册/取消注册接收者是一种很好的做法。我正在这样做,但它似乎没有解决问题。
@Override
protected void onPause() {
  // Unregister since the activity is not visible
  LocalBroadcastManager.getInstance(this).unregisterReceiver(onComplete);
  super.onPause();
}