2011-03-14 43 views
2

我試圖讓從Service一個IBinder這樣我就可以接收到來自系統的通知時與服務進行通信。從我的onReceive()方法,我打電話peekService(),但我得到空引用。廣播接收器peekService()返回null

我已經閱讀了一些答案https://groups.google.com/forum/#!topic/android-developers/yiq_XIzFoS4從Dianne和Mark他們推薦使用startService但我的服務有一個接口,我認爲peekService應該工作,但它不。

我需要權限才能查看BroadcastReceiver的服務嗎?我需要別的東西嗎?我確定該服務正在運行,但我無法從中獲得活頁夾。

回答

2

如果通信是BroadcastReceiver - > Service ...,那麼您將使用startService(),通過將數據添加到Intent的Bundle來傳遞數據。

我懷疑你的BroadcastReceiver需要詢問服務(或其IBinder)一個問題。在這種情況下,您使用peekService。與peekService的摩擦是,如果服務未啓動並被綁定,它將返回null。

答案是,以確保服務已啓動,已經綁定,收到您的廣播之前。你如何完成這將取決於你的具體應用。

如果你偷看服務爲您的應用程序(相同的APK),那麼你不需要特殊權限的一部分。