1

こんにちは、アクティビティが 1 つあり、アクティビティからサービス クラスが 1 つあり、ある時点でサービスを開始しています。サービスを開始したいのですが、同じ時点で、サービスが既に実行されていることを確認したいのですが、そうでない場合は開始サービスを呼び出したくありません。ストラトですが、私の問題は、サービスが実行されているかどうかをどのように知ることができるかということです?

私は以下のコードを使用しましたが、私にとってはうまくいかないのは、私を助ける他のコードです

  private boolean isServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager
            .getRunningServices(Integer.MAX_VALUE)) {
        if ("TimerService".equals(service.service.getClassName())) {
            Toast.makeText(getApplicationContext(), "running", 100).show();
            return true;

        }
    }
    Toast.makeText(getApplicationContext(), "not running", 100).show();
    return false;
}

このコードは、実行中であってもチューニングしていないことを常に示しています

4

1 に答える 1

1

実行中かどうかを確認する必要はありません。startService()との両方stopService()が対応する状態を処理するため、呼び出したstartService()ときServiceに既に実行されていた場合、何も起こりません (単に実行を続けます)。も同様stopService()です。

于 2014-03-24T19:33:35.130 に答える