2011-03-15 81 views
1

有沒有辦法在服務上下文中獲得廣播接收? 我曾嘗試在清單文件中添加receiver意圖過濾器,但當然Android嘗試每次都實例化該服務,並拋出異常。接收服務中的廣播

我該怎麼做?

(我提到我在Android上一個完整的小白?)

回答

3

有沒有辦法讓廣播接收時,在服務方面?

不直接。 A Service可以通過registerReceiver()動態註冊BroadcastReceiver,或者您可以通過startService()將清單註冊的BroadcastReceiver「事件」轉發給Service

+0

奇妙!我找出了缺失的部分。感謝您指點我正確的方向! – jldupont

+0

您好CommonsWare和jldupont,你能否提供代碼片段來添加我的服務類和清單文件中的更改?我無法解決這個問題。我在我的服務類中創建了新成員BroadcastReceiver類,然後使用意向過濾器爲CONNECTIVITY_ACTION註冊了廣播接收器實例化對象。然後我用新的接收器更新了清單文件,如下所示: 「。 –

1

Android會實例化一個服務來處理它已經註冊的任何特定的Intent - 或者如果服務正在運行,它將在它的當前操作完成後立即將Intent排隊處理。要觀看廣播,請註冊BroadcastReceiver並轉發您的服務。

如果你的服務拋出一個異常,它有問題。爲您的應用程序的異常發佈完整的堆棧跟蹤,您可以使用adb和logcat作爲here或在Eclipse的logcat視圖中看到該異常。