在我的个人简历()中,我有这个
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(mReceiver,intentFilter);
每次激活ConnectivityManager.CONNECTIVITY_ACTION ()时,mReceiver总是接收到一个广播,其动作为onResume()
这很奇怪,因为我的网络状态是稳定的wifi,一点也不改变。
发布于 2013-11-25 03:15:45
似乎粘滞广播是动作ConnectivityManager.CONNECTIVITY_ACTION的一个常见问题,遵循我试图用XML描述接收方的指令,但似乎不太好。最后,我使用了一种灵活的方法来解决这个问题:由于Onresume中的每次都会发送该广播,所以我将一个布尔值设置为'false',当on简历第一次调用接收者时,程序只会将这个布尔值设置为'true‘。然后,当连接性改变时,它就会变成正常的过程。这似乎不是一个优雅的方法,但它在我的应用程序中奏效了。
发布于 2013-11-20 04:46:05
每次简历被激活时,每次都会调用一个registerReceiver。registerReceiver发送bck 粘滞广播。一旦registerBroadcast被呼叫,粘性广播就会被发送到接收器。
您可以使用unregisterReceiver或检查您必须检查您是否已经注册和跳过,如果是..
发布于 2013-11-20 04:42:29
根据registerReceiver的文档(BroadcastReceiver接收器,IntentFilter过滤器):
系统可能会播放一些“粘稠”的内容--在广播结束后,这些内容将被发送到任何以后的注册。如果您的IntentFilter与这些粘性意图之一相匹配,此函数将返回该意图,并将其发送给您的接收器,就像它刚刚被广播一样。
虽然你现在只是注册你的接收器,但是这取决于系统什么时候来广播这个意图,因为这个意图很棘手,所以一旦你注册,它就会被广播。
https://stackoverflow.com/questions/20086926
复制相似问题