1

次のコードで自動起動する Android サービスを開発しました。

AndroidManifest.xml :

    <!-- Declare Boot Completed Broadcast Receiver, For Service Auto-Start on Boot -->
    <receiver android:name=".utils.os.ServiceAutoStart">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

ServiceAutoStart.java :

public class ServiceAutoStart extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        // Start Patch Service On Boot
        context.startService(new Intent(context, PatchService.class));
    }
}

さらに、startService() と bindService() を使用してサービスを開始およびバインドする「ビューアー」があります。ほとんどの場合、すべてが期待どおりに機能します。最近、Android デバイスの起動直後に「Viewer」アプリケーションを開くと、サービスの 2 つのインスタンスが作成されているように見えることに気付きました (下の画像を参照)。同じサービスのインスタンスを 2 つ作成できるとは思いませんでした。ここで何が起こっているのですか?DDMS で見ているものを誤解していますか?

ここに画像の説明を入力

4

1 に答える 1

1

サービスのインスタンスを 2 つ作成しているようです (下の画像を参照)。

左側のデバッグ可能なプロセスの半編集リストを参照している場合、それらは 2 つの別個のアプリです。1 つはcom.XXXX.serviceで、もう 1 つはcom.XXXX.serviceremoteです。

同じサービスのインスタンスを 2 つ作成できるとは思いませんでした

そうではありません。これらは、個別のアプリ内の個別のサービスの個別のインスタンスです。

于 2013-07-15T20:21:03.813 に答える