2013-12-21 32 views
0

我需要能夠讓一個服務「告訴」BroadcastReceiver做一些工作,然後等到該工作完成,一旦完成,BroadcastReceiver需要將結果發送回服務。在那個時候,服務可以繼續執行。因此,將服務中的工作「發送」到BroadcastReceiver非常簡單 - 我只是發送一個廣播,其意圖是使用額外工作來完成需要完成的工作。但我不知道如何讓BroadcastReceiver將結果發送回服務。什麼是最好的方法來做到這一點?在Android中,服務和BroadcastReceiver之間進行通信的最佳方式是什麼?

編輯: 我應該提到有問題的服務實際上是一個聯繫人同步適配器服務。我不確定這是否有所作爲,但也許會有所作爲。有些工作不能在同步適配器的範圍內完成,這就是爲什麼我要卸載它由廣播接收器完成的原因。

回答

0

從服務註冊第二個內聯廣播接收器只是爲了接收來自第一個廣播接收器的結果。通過意圖傳遞數據。在第二個廣播接收機onReceive()做你想做的。

註銷服務的onDestroy中的第二個廣播接收器。

+0

那會完成什麼?我仍然需要將結果數據返回到服務中,那麼第二臺廣播接收機將如何提供幫助? – user496854

+0

我所建議的是服務中的內聯廣播接收器。這將有權訪問所有服務屬性和方法.. –

+0

啊,對不起,我錯過了。在那種情況下,我不能直接將意圖發送到服務並在onStartCommand中處理它們嗎? – user496854

相關問題