我有两个申请。一个应用程序具有活动,另一个应用程序具有后台服务。 我如何从活动中启动服务?
我试过了:
Intent intent = new Intent () ;
intent.setClassName("com.example.mySerive","com.example.mySerive.service") ;
this.startService(intent);
答案 0 :(得分:1)
首先,您应该在第二个App的AndroidManifest上声明您的服务:
与活动(和其他组件)类似,您必须在应用程序的清单文件中声明所有服务。
要声明您的服务,请添加元素作为元素的子元素。例如:
<application ... >
<service android:name=".ExampleService" />
...
</application>
如果您打算仅在本地使用您的服务(其他应用程序不使用它),那么您不需要(也不应该)提供任何意图过滤器。如果没有任何intent过滤器,则必须使用显式命名服务类的intent启动服务。有关启动服务的更多信息将在下面讨论。
如果要在外部应用程序上使用,必须定义一个IntentFilter:
<service android:name=".ExampleService" />
<intent-filter>
<action android:name="br.com.androidzin.MyService" />
</intent-filter>
</service>
之后,您可以通过以下方式在外部应用上启动服务:
Intent intent=new Intent("br.com.androidzin.MyService");
this.startService(intent);