检查Foreground服务是否在Android OREO中运行

时间:2018-12-13 11:42:03

标签: android performance service foreground-service

我想检查我的服务是否正在运行, 我正在使用下面的代码,直到牛轧糖都可以正常工作,但不能在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;
    }

但是上面的代码不适用于前台服务。

1 个答案:

答案 0 :(得分:2)

ActivityManager.getRunningServices() API自API 26以来一直是deprecated,并且从Oreo开始不再可用。它仅用于调试,不能用于生产应用程序。您不应该为您的应用程序依赖这种类型的API。