如何从广播接收器回传到服务?

3

希望有人能在这里帮助我。我将尝试简明扼要地描述问题!

我有一个小部件,它启动一个服务。该服务注册了两个广播接收器。我想从接收器向服务发送意图,以便服务可以做出反应。

我相信我在某个地方读到过多次“启动”服务的方法,例如在接收器中执行以下操作:

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

我记得在某个博客上读到过,这不会启动一个新服务,而只是将意图传递给已经运行的服务。这是正确的吗?这是一个不好的做法吗?有更好的方法吗?

非常感谢!

杰克

2个回答

1

是的,我在一个2.0之前的应用程序中使用过这种方法。


1
它会工作,但服务已更改。请参见此处:http://developer.android.com/intl/de/reference/android/app/Service.html;具体来说,`onStartCommand(android.content.Intent, int, int)`。 - Justin
这是一个答案还是一个评论? - amrezzd

0

我使用了单例模式来实现这个功能。在服务的onCreate方法中,我设置了一个指向“this”的私有变量,然后使用了一个名为getInstance()的静态方法来返回它。因此,稍后只需调用MyService.getInstance()即可获取该服务。


如果该变量尚未初始化,会发生什么? - amrezzd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接