4

私のコードでは、次のように条件付きでサービスを開始します。

Intent intent = new Intent(context, MyService.class);
context.startService(intent);

2回サービスを開始しないように、以前に同じサービスを開始したことがあるかどうかを確認できるかどうか教えてください。

ありがとうございました。

4

2 に答える 2

8

サービスがすでに実行されている場合、サービスは2回開始されません。実際、startService()を複数回呼び出しても、停止するのに必要なstopService()は1つだけです。

ここここを参照してください。

于 2011-02-25T21:48:37.977 に答える
5

Check this:

private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
    if ("com.example.MyService".equals(service.service.getClassName())) {
        return true;
    }
}
return false;}

@bigstones: I don't know how, but I have a service that it can be created how many times as you like (maybe because I create inside it various runnable objects).

于 2012-06-07T16:30:48.507 に答える