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

iLy*_*yas 29 android background-service android-service google-play-services

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

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

我试图删除Activity,但然后应用程序不运行或启动. 我的问题是:我可以创建一个完全像Google Play Services其他应用程序可以使用它的应用程序Service.

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

G. *_*ike 29

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

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

不过,这很容易做到.只需触发其他程序的意图,如下所示:

startService(new Intent("my.service.intent"));
Run Code Online (Sandbox Code Playgroud)

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

        <service android:name=".SomeService" >
          <intent-filter>
            <action android:name="my.service.intent"/>
          </intent-filter>
Run Code Online (Sandbox Code Playgroud)

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

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

编辑添加意图过滤器