0

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

我试过了:

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

1 回答 1

1

首先,您应该在您的第二个应用程序的 AndroidManifest 上声明您的服务:

与活动(和其他组件)一样,您必须在应用程序的清单文件中声明所有服务。

要声明您的服务,请添加一个元素作为该元素的子元素。例如:

  <application ... >
      <service android:name=".ExampleService" />
      ...
  </application>

如果您计划仅在本地使用您的服务(其他应用程序不使用它),那么您不需要(也不应该)提供任何意图过滤器。如果没有任何意图过滤器,您必须使用明确命名服务类的意图来启动服务。下面讨论了有关启动服务的更多信息。

当您想在外部应用程序上使用时,您必须定义一个 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);
于 2013-03-05T13:05:06.233 回答