从活动,2个应用程序启动服务

时间:2013-03-05 12:35:01

标签: android android-service

我有两个申请。一个应用程序具有活动,另一个应用程序具有后台服务。 我如何从活动中启动服务?

我试过了:

Intent intent = new Intent () ;
intent.setClassName("com.example.mySerive","com.example.mySerive.service") ;
this.startService(intent);

1 个答案:

答案 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);