当前位置: 首页 > 知识库问答 >
问题:

活动已泄漏最初在此处注册的IntentReceiver。您是否缺少对unregisterReceiver()的调用?

蒋波光
2023-03-14
01-16 16:52:42.211: E/ActivityThread(2529): Activity com.Civilcourage.CivilcurageSplash has leaked IntentReceiver com.google.android.gcm.GCMBroadcastReceiver@405282e0 that was originally registered here. 

Are you missing a call to unregisterReceiver()?

上述错误的原因是什么?如何避免?

共有3个答案

呼延俊风
2023-03-14

您可以在收到broadcastreceiver后立即取消注册

 @Override
 public void onReceive(Context context, Intent intent) {
     getActivity().unregisterReceiver(this);
 }
慎芷阳
2023-03-14

您需要在活动停止时注销您的接收器:

@Override
protected void onStop()
{
    unregisterReceiver(yourReceiver);
    super.onStop();
}
邴墨竹
2023-03-14

不要依赖onStop(),因为:

请注意,在内存不足的情况下,系统没有足够的内存来保持活动的进程在调用其onPance()方法后运行,可能永远不会调用此方法

更多关于活动生命周期的信息。

取消注册您的接收器在onPawn():

@Override
protected void onPause() {
    super.onPause();

    unregisterReceiver(yourReceiver);
}
 类似资料:
  • 问题内容: 我希望在这里找到帮助,因为我对Android中的BroadcastReceivers并不熟悉。这段代码将打开WebView,将您重定向到登录页面,并在检测到URL更改后接收登录令牌。之后,活动被关闭。 什么都没发生,LogCat显示此错误: 我的问题是,由于我尚未创建并初始化一个广播接收器,所以我不知道该注销哪个广播接收器。 谢谢你的帮助 问题答案: 当WebView仍附加到其父视图时

  • 私有类LoadOrdersListAgent扩展AsyncTask{ //new LoadOrdersListAdmin().Execute();}其他toast.maketext(OrdersActivity.this,“no Internet connection!”,toast.length_short).show();srl.setrefreshing(false);}});}

  • 我在Eclipse中使用Lifeay IDE创建了一个新项目(带有插件Portlet类型和JSF2.x.x Portlet框架的Liferay项目)。我没有做任何更改,将project添加到LiferayV6.1CE服务器(Tomcat7)并启动了这个服务器。 不幸的是,我得到了这个错误(portlet未注册)。 (...)09:05:08,828信息[ContainerBackgroundPro

  • 我有一个测试,它正在测试一个Spring@Service类。这个服务类autoworitory在一个dao@存储库中。dao还在一个类中autowires以提供额外的功能。我想模仿dao中的调用,所以我有如下内容: 服务中对getAnalysis的调用调用dao方法nameExists,我想从Expects块中的mockedNameExists返回结果,但我不知道我做错了什么。

  • 问题内容: 我正在尝试在后台解压缩某些文件,因此我像在Google教程中一样使用IntentService。我在AndroidManifest中声明的服务类如下: 在活动中,我有 和服务在这里: 它应该显示吐司只是为了测试,但我总是收到一个错误: 两者(类和活动)都位于同一文件夹(org.osmdroid)中。似乎可以使用路径,但是问题出现了,我没有更多的想法了…… 问题答案: 您正在将服务作为活

  • 我有这样的代码: 当我们没有任何其他getInstance的静态方法时,是否初始化了此单例惰性?据我所知,类只在某些情况下初始化,比如: 类的实例是使用new()关键字或使用类的反射创建的。forName(),它可能在Java中引发ClassNotFoundException (Surce:http://javarevisited.blogspot.com/2012/07/when-class-l