我用LocalBroadcastManager
广播的Intent
似乎没有被消费,而是积累起来。每次我发送广播时,我都会收到它以及以前发送的所有广播,其格式为onReceive
。LocalBroadcastManager广播没有消费
期刊JobService
我使用IntentFilter
创建BroadcastReceiver
,并使用lbm.registerReceiver(receiver, intentFilter);
动态注册它。然后我开始一个Service
,它在其构造函数中使用相同的过滤器创建一个Intent
,并且执行lbm.sendBroadcast(intent);
一次,然后自行停止。 sendBroadcast
返回true,表明它是在另一端收到的(请参阅Is there a way to tell if LocalBroadcastManager broadcasts were received?)。但每次重复此循环时,都会再次收到之前收到的所有Intents
。通过捆绑一个时间戳,我已经证实,它确实是旧的,只是躺在一边,并一次又一次地被接收。
如何“消费”收到的Intent
?从我可以告诉的是,如果它被onReceive收到,这不应该是必要的。我在Intent
或LocalBroadcastManager
中找不到任何取消广播的方法。
我该如何接收每个广播一次?
确保在JobService完成时取消注册您的BroadCastReceiver。 –
在工作完成之前,我确实已经忘记这么做了。迄今为止,结果看起来更好。一线希望?!谢谢你的提示! – Toerndev