我正在制作一组应用程序,它们的后台服务基本相同。
我试图制作一个仅具有此Service
的应用程序。这样我不必在所有应用程序中重复编写,但问题是不需要任何Activity
。因为它不需要用户界面,所以用户除非停止Service
否则无法关闭它。
我尝试删除Activity
,但然后应用程序无法运行或启动。我的问题是:我可以做一款像Google Play Services
一样的应用程序,从而使其他应用程序可以使用它的Service
吗?
如果可以的话,代码片段或示例将非常受欢迎。
我正在制作一组应用程序,它们的后台服务基本相同。
我试图制作一个仅具有此Service
的应用程序。这样我不必在所有应用程序中重复编写,但问题是不需要任何Activity
。因为它不需要用户界面,所以用户除非停止Service
否则无法关闭它。
我尝试删除Activity
,但然后应用程序无法运行或启动。我的问题是:我可以做一款像Google Play Services
一样的应用程序,从而使其他应用程序可以使用它的Service
吗?
如果可以的话,代码片段或示例将非常受欢迎。
当然可以只有一个服务的应用程序,没有任何理由不可以。如果你不想用AIDL也没关系。
问题在于如何运行这个应用程序。当你创建一个带有Activity的应用程序时,在清单文件中添加Intent filter,使得该Activity可以从Launcher启动。如果没有Activity,你就必须找到另一种方式来启动它。
但这很容易做到,只需从其他程序中发送intent即可,例如:
startService(new Intent("my.service.intent"));
...在您的清单文件中注册服务,就像这样:
<service android:name=".SomeService" >
<intent-filter>
<action android:name="my.service.intent"/>
</intent-filter>
你可以使用该Intent将可Parcelable参数传递给服务,服务可以通过广播Intent回复。当然,如果您确实需要应用程序和服务之间的复杂API,startService和broadcastIntent有点笨拙。如果需要更丰富的内容,建议研究AIDL和Bound Service。编辑以添加Intent Filter。