2010-08-17 192 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()来获得服务。