Android でサービスが実行されているかどうかを確認するにはどうすればいいですか? 質問する

Android でサービスが実行されているかどうかを確認するにはどうすればいいですか? 質問する

バックグラウンド サービスが実行されているかどうかを確認するにはどうすればよいですか?

サービスの状態を切り替える Android アクティビティが必要です。これにより、サービスがオフの場合はオンに、オンの場合はオフにすることができます。

ベストアンサー1

アクティビティ内から以下を使用します。

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

そして、私は次のように呼び出します:

isMyServiceRunning(MyService.class)

これは、Androidオペレーティングシステムによって提供される実行中のサービスに関する情報に基づいているため、確実に機能します。ActivityManager#getRunningServices

onDestroyイベントやバインダー、静的変数を使用するすべてのアプローチは、onSomething開発者としてAndroidがいつプロセスを強制終了するか、または前述のコールバックのどれが呼び出されるか、呼び出されないかがわからないため、確実に機能しません。ライフサイクルイベントテーブルAndroid ドキュメントに記載されています。

おすすめ記事