我用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