次のコードで自動起動する 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 で見ているものを誤解していますか?