0

2つのアプリケーションがあります。1 つのアプリにはアクティビティがあり、別のアプリにはバックグラウンド サービスがあります。アクティビティからサービスを開始するにはどうすればよいですか?

私は試した:

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

1 に答える 1

1

最初に、2 つ目のアプリの 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 に答える