重複の可能性:
Android: サービスが実行されているかどうかを確認する
アクションを実行するサービスが 1 つあります。バックグラウンドで無期限に実行されます。サービスが実行されているかどうかを監視したい。そのため、最初のサービスを監視する別のサービスを作成したいと考えています。
サービスが実行されているかどうかにかかわらず、ブロードキャストする他のアクションインターフィルターはありますか?
重複の可能性:
Android: サービスが実行されているかどうかを確認する
アクションを実行するサービスが 1 つあります。バックグラウンドで無期限に実行されます。サービスが実行されているかどうかを監視したい。そのため、最初のサービスを監視する別のサービスを作成したいと考えています。
サービスが実行されているかどうかにかかわらず、ブロードキャストする他のアクションインターフィルターはありますか?
Presumably, it is calling getRunningServices() on ActivityManager. There is no documented Intent to go straight to that screen.
ステップ1.最初に、いくつかの変数を宣言して初期化する必要があります:-
private static final String APP_DETAILS_PACKAGE_NAME = “com.android.settings”; // Here you need to define the package name
private static final String SCREEN_CLASS_NAME = “com.android.settings.RunningServices”; // Here you need to define the class name but NOTICE!! you need to define its full name including package name.
ステップ2.インテントをインスタンス化する
Intent intent = new Intent();
手順3.アクションをACTION_VIEWに設定します
intent.setAction(Intent.ACTION_VIEW);
ステップ3.パッケージには複数のアクティビティが含まれる可能性があることがわかっているため、インテント内にクラス名を設定します。したがって、Intentには、パッケージ名内のアクティビティと一致するものが必要です。
intent.setClassName(APP_DETAILS_PACKAGE_NAME, SCREEN_CLASS_NAME);
ステップ4.アクティビティを開始します
context.startActivity(intent);
上記の例で、別の画面にアクセスする場合は、必要に応じてAPP_DETAILS_PACKAGE_NAMEとSCREEN_CLASS_NAMEを変更します。
あなたが使用することができgetRunningServices(int max)
ますActivityManager
ActivityManager actManager = // アクティビティ マネージャーを取得する
int max = ??;
List<ActivityManager.RunningServiceInfo> runningServices = actManager.getRunningServices(max);
for(ActivityManager.RunningServiceInfo runningService : runningServices)
{
boolean started = runningService.started;
}
注:このメソッドは、サービス管理タイプのユーザー インターフェイスのデバッグまたは実装のみを目的としています。