Android应用程序作为没有活动的服务

时间:2014-06-19 13:09:13

标签: android android-service google-play-services background-service

我正在创建一组应用程序,我为所有这些应用程序提供了相同的后台服务。

我正在尝试创建一个只有Service的应用。所以我不会在所有这些中重复它,但事情是不需要任何Activity。因为它不需要UI,因此用户无法关闭它,除非它们停止Service

我尝试删除Activity,但之后该应用无法运行或启动。 我的问题是:我可以制作与Google Play Services完全相同的应用,以便其他应用可以使用其Service

如果是,则非常欢迎使用片段或样本。

2 个答案:

答案 0 :(得分:28)

当然!没有理由你不能只有一个服务的应用程序。 ......除非你愿意,否则无需进入AIDL。

问题是,如何使应用程序运行。使用Activity创建应用程序时,可以在清单中添加一个Intent过滤器,使活动可以从Launcher启动。如果没有活动,你必须找到另一种方法来启动它。

但是,这很容易做到。只需从你的其他程序中激活一个意图,例如:

startService(new Intent("my.service.intent"));

...服务在您的清单中注册,如下所示:

        <service android:name=".SomeService" >
          <intent-filter>
            <action android:name="my.service.intent"/>
          </intent-filter>

您可以使用该意图将Parcelable参数传递给服务,并且服务可以通过广播意图进行回复。

当然,如果您真的需要应用程序和服务之间的复杂API,startService和broadcastIntent有点笨拙。如果你需要更丰富的东西,想要查看AIDL和绑定服务。

编辑添加意图过滤器

答案 1 :(得分:0)

是的,我认为您正在寻找AIDL。看看这个帖子?

https://groups.google.com/forum/#!topic/android-developers/LuWPZjPZ0sk