-1

私はこの方法をテストしました:

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

アクティビティで startService() を使用せずに bindService() を呼び出すと、サービスは実行されています (前の方法で確認しました) が、startService() だけがサービスを開始できると考えていました。

したがって、サービスが実際にいつ開始されたかを知りたいだけです: startService() または binService()

コメントだけです。 unBindService() を呼び出したときのみ、前のメソッドは false を返します。

ありがとう。

4

1 に答える 1

2

getRunningServices()実行中のサービスを返します。によって開始された、startService()または経由でバインドされた場合、サービスは実行されbindService()ます。

于 2013-05-11T15:35:47.107 に答える