1

關於在活動內部運行的廣播接收器。通常我在onResume中註冊,並在onPause內部取消註冊。但。假設發件人發送了廣播,現在我的活動恢復,我的活動已暫停。活動現在恢復,是否會收到廣播?活動何時在Android中接收廣播

現在明白了這一點。文檔表示該活動在暫停時不會收到意圖。但是這個陳述是懸而未決的,因爲我的具體問題。

onCreate -> onResume -> onPause|...broadcast sent...| -> onResume-> ??? 
+1

在'onPause()'中註銷Receiver的主要原因是因爲在Activity處於非活動狀態時,您不希望接收廣播。如果不是這樣,您應該考慮在後臺運行的服務中註冊接收器。 – adelphus

+0

我喜歡這兩個答案,我會投兩個。但@adelphus更進一步建議與服務配對,所以如果您發佈回覆,我希望將其視爲最佳迴應。對於不理解的人來說,由於評論有點簡單,我的活動將綁定到服務並以這種方式檢查更新。 –

+0

欣賞它,但我的評論並沒有真正回答你的問題(*該活動是否會收到廣播「)。一般來說,SO喜歡你標記你的實際問題的答案,即使這些評論可以幫助你。 – adelphus

回答

2

不是。因爲當您向該活動發送廣播時,您已經取消了該接收者的註冊。因此,廣播將被髮送,尋找可以處理該廣播的接收器,並且由於沒有,所以放棄該請求。

恢復時,您的應用程序將重新註冊接收器。但是,由於先前的請求已被刪除,因此它不會對其做出響應,而只會響應活動恢復後發送的請求。