我想检查我的服务是否正在运行, 我正在使用下面的代码,直到牛轧糖都可以正常工作,但不能在OREO中工作
private boolean isMyServiceRunning(Class<?> serviceClass, Context context) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
Log.d(TAG, "isMyServiceRunning: " + service.service.getClassName());
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
但是上面的代码不适用于前台服务。
答案 0 :(得分:2)
ActivityManager.getRunningServices()
API自API 26以来一直是deprecated,并且从Oreo开始不再可用。它仅用于调试,不能用于生产应用程序。您不应该为您的应用程序依赖这种类型的API。