フォアグラウンドで実行していると思われるサービスがありますが、実装が機能しているかどうかを確認するにはどうすればよいですか?Androidサービスがフォアグラウンドで実行されているかどうかを確認するにはどうすればよいですか?
12
A
答えて
14
private boolean isServiceRunning(String serviceName){
boolean serviceRunning = false;
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> l = am.getRunningServices(50);
Iterator<ActivityManager.RunningServiceInfo> i = l.iterator();
while (i.hasNext()) {
ActivityManager.RunningServiceInfo runningServiceInfo = i
.next();
if(runningServiceInfo.service.getClassName().equals(serviceName)){
serviceRunning = true;
if(runningServiceInfo.foreground)
{
//service run in foreground
}
}
}
return serviceRunning;
}
は、あなたのサービスがフォアグラウンドで実行されているかどうかを知りたい場合は、単にいくつかの他に脂肪のアプリケーションを開き、サービスがまだ実行されているか、単にフラグservice.foreground
をチェックしているかどうかを確認します。
12
public static boolean isServiceRunningInForeground(Context context, Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
if (service.foreground) {
return true;
}
}
}
return false;
}
0
答えのより効率的なバリエーション:素晴らしい仕事https://stackoverflow.com/a/36127260/1275265
public static boolean isServiceRunningInForeground(Context context, Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return service.foreground;
}
}
return false;
}
関連する問題
- 1. アプリケーションがフォアグラウンドで実行されているかどうかの確認
- 2. ハイブ、ImpalaのようなclouderaサービスがJavaコードで実行されているかどうかを確認するにはどうすればよいですか?
- 3. Androidで実行されているアプリを確認するにはどうすればよいですか?
- 4. 実行ファイルのパスを使用してWindowsサービスがインストールされているかどうかを確認するにはどうすればよいですか?
- 5. Androidで実行時にユーザーの権限が許可されているかどうかを確認するにはどうすればよいですか?
- 6. Firefoxが現在実行中にヘッドレスモードで実行されているかどうかを確認するにはどうすればよいですか?
- 7. アプリがバックグラウンドで実行されているか、アンドロイドを殺しているかどうかを確認するにはどうすればよいですか?
- 8. javawをフォアグラウンドで実行するにはどうすればよいですか?
- 9. AndroidアプリがGoogle Cloud Test Labで実行されているかどうかを確認するにはどうすればよいですか?
- 10. プロセスがすでにpowershell上で実行されているかどうかを確認するにはどうすればよいですか?
- 11. Android:アクティビティにオプションメニューがあるかどうかを確認するにはどうすればよいですか?
- 12. Androidアプリにメモリリークがあるかどうかを確認するにはどうすればよいですか?
- 13. Android:経由でサービスが実行されているかどうかを確認してください。 bindService
- 14. URLがAndroidで有効かどうかを確認するにはどうすればよいですか?
- 15. ポップアップページが開いているかどうかを確認するにはどうすればよいですか?
- 16. アプリが実際に実行されているかどうかを確認するにはどうすればよいですか?
- 17. アクティビティがアンドロイドでフォアグラウンドかバックグラウンドかを確認するにはどうすればいいですか?
- 18. Androidデバイスが公式のAndroid 7.0+フリーフォームマルチウィンドウモードを実行しているかどうかを確認するにはどうすればよいですか?
- 19. アプリがエミュレータまたは物理デバイスで実行されているかどうかを確認するにはどうすればよいですか?
- 20. Grand Central Dispatchを使用して、ブロックが既に実行されているかどうかを確認するにはどうすればよいですか?
- 21. スクリーンセーバーが実行されているかどうかを確認するには?
- 22. フルスクリーンアプリケーションが実行されているかどうかを確認するには?
- 23. エラーが返されたかどうかを確認するにはどうすればよいですか?
- 24. リンクが訪問されたかどうかを確認するにはどうすればよいですか?
- 25. ネットパイプサービスがリッスンしているかどうかを確認するにはどうすればよいですか
- 26. Sqliteで行が0か1かどうかを確認するにはどうすればいいですか
- 27. Pythonを使用してブラウザが実行されているかどうかを確認するにはどうすればよいですか?
- 28. .NETアプリケーションがターミナルサーバー上で実行されているかどうかを確認するにはどうすればよいですか?
- 29. コンテナがKubernetesクラスタ内で実行されているかどうかを確認するにはどうすればよいですか?
- 30. PerlスクリプトがWindows上で実行されているかどうかを確認するにはどうすればよいですか?
感謝を!私はちょうどこの行を追加する必要があった:serviceInForeground = runningServiceInfo.foreground; – user811985
onDestroy()のstopForeground(true)はどうですか?サービスがフォアグラウンドで実行されないようにしますか? –
@ user811985参考、RunningServiceInfo.foregroundのドキュメントは次のように述べています。 "サービス*がフォアグラウンドプロセスとして実行するように要求されている場合はtrueに設定されます。"つまり、アンドロイドが実際にフォアグラウンドへのサービスを受け入れたかどうかはわかりません。 http://developer.android.com/reference/android/app/ActivityManager.RunningServiceInfo.html#foreground – newbyca