4

クラスなしで Android サービスを開始する方法を探しています。次のような多くの例を見つけました。

startService(new Intent(this, TheService.class));

サービスクラスを入れたくないので、手動で停止するまでサービスを実行したままにします。

パラメータなしでいくつかのソケットを開くだけなので、サービスのインターフェイスは必要ありません。

サービスの実行時間は、アプリの実行時間に依存するべきではありません。サービスを必要とする最初のアプリはサービスを開始し、手動で停止するまで実行する必要があります。

BroadcastReceiver寿命が短いので使えません。サービスにバインドすると、バインドが解除され、サービスが停止します(これは望ましくありません)。

サービスの .class なしで開始サービスを使用する方法はありますか? 代替: 有効期間を開始されたアプリにリンクしないサービスにバインドする方法はありますか?

4

1 に答える 1

7

名前で起動できます。このような:

public static void startYourService(Context context) {
    Intent i = new Intent("com.whatever.servicename.YOUR_ACTION_NAME");
    i.setPackage(context.getPackageName());
    context.startService(i);
}

サービスを使用して apk にインテント フィルターを追加する必要があります。

<service
    android:name="com.whatever.servicename"
    android:exported="true">
    <intent-filter>
        <action android:name="com.whatever.servicename.YOUR_ACTION_NAME" />
    </intent-filter>
</service>
于 2013-02-18T07:06:05.567 に答える