首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么每次激活onResume()方法时接收机都接收广播?

为什么每次激活onResume()方法时接收机都接收广播?
EN

Stack Overflow用户
提问于 2013-11-20 03:45:01
回答 4查看 676关注 0票数 0

在我的个人简历()中,我有这个

intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(mReceiver,intentFilter);

每次激活ConnectivityManager.CONNECTIVITY_ACTION ()时,mReceiver总是接收到一个广播,其动作为onResume()

这很奇怪,因为我的网络状态是稳定的wifi,一点也不改变。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-25 03:15:45

似乎粘滞广播是动作ConnectivityManager.CONNECTIVITY_ACTION的一个常见问题,遵循我试图用XML描述接收方的指令,但似乎不太好。最后,我使用了一种灵活的方法来解决这个问题:由于Onresume中的每次都会发送该广播,所以我将一个布尔值设置为'false',当on简历第一次调用接收者时,程序只会将这个布尔值设置为'true‘。然后,当连接性改变时,它就会变成正常的过程。这似乎不是一个优雅的方法,但它在我的应用程序中奏效了。

票数 0
EN

Stack Overflow用户

发布于 2013-11-20 04:46:05

每次简历被激活时,每次都会调用一个registerReceiver。registerReceiver发送bck 粘滞广播。一旦registerBroadcast被呼叫,粘性广播就会被发送到接收器。

您可以使用unregisterReceiver或检查您必须检查您是否已经注册和跳过,如果是..

票数 2
EN

Stack Overflow用户

发布于 2013-11-20 04:42:29

根据registerReceiver的文档(BroadcastReceiver接收器,IntentFilter过滤器):

系统可能会播放一些“粘稠”的内容--在广播结束后,这些内容将被发送到任何以后的注册。如果您的IntentFilter与这些粘性意图之一相匹配,此函数将返回该意图,并将其发送给您的接收器,就像它刚刚被广播一样。

虽然你现在只是注册你的接收器,但是这取决于系统什么时候来广播这个意图,因为这个意图很棘手,所以一旦你注册,它就会被广播。

看看这个行动,总是广播时,注册一个接收器?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20086926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档