2010-08-17 160 views
3

希望有人能幫助我。我會盡量簡潔!如何通過廣播接收器與服務進行通信?

我有一個小部件啓動一項服務。該服務註冊兩個廣播接收機。我希望將接收方的意圖發回服務,以便服務能夠做出反應。

我相信我在某個地方讀過多次「開始」這項服務,例如,不要在接收器的情況如下:

serviceIntent.setAction("me.SERVICE"); 
intent.putExtra("me.SERVICE", somedata); 
context.startService(serviceIntent); 

我記得讀(在某些博客),這將不會啓動新的服務,但會簡單地傳遞的意圖,已經運行的服務。它是否正確?這是否是一種糟糕的做法?有沒有更好的辦法?

非常感謝!

傑克

回答

1

是的,我在2.0以前的應用程序中使用了這種方法。

+0

謝謝賈斯汀!如何2.0後?它會起作用嗎? – Jack 2010-08-17 19:52:50

+1

它會工作,但服務改變。看到這裏:http://developer.android.com/intl/de/reference/android/app/Service.html;具體來說,'onStartCommand(android.content.Intent,int,int)' – Justin 2010-08-17 20:01:54

0

我完成了這個使用單身。我在服務的onCreate中設置了一個私有變量(指向'this'),然後使用一個名爲getInstance()的靜態方法返回它。所以稍後,我只需調用MyService.getInstance()來獲得服務。