android - 检查 Android OREO 中的前台服务是否正在运行

标签 android performance service foreground-service

我想检查我的服务是否正在运行, 我使用下面的代码,它在牛轧糖之前工作正常,但在奥利奥中不起作用

 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;
    }

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

我已提及this但它也不起作用..

最佳答案

ActivityManager.getRunningServices() API 已 deprecated自 API 26 起,从 Oreo 起不再可用。它仅用于调试,而不是生产应用程序。您的应用程序不应依赖此类 API。

关于android - 检查 Android OREO 中的前台服务是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53761074/

相关文章:

java - Scala 中的库——在 Android 中使用

java - "Back button"不关闭 Activity

python - 从python中的特定reddit线程获取所有评论

android - 如何确保您不会两次启动服务android

python - 通过 Python 脚本启动/停止 Apache

android - 如果应用关闭,粘性服务中定义的 Twilio 设备不会启动 Activity

android - 从 AVFrame(android) 加载纹理的问题

android - 无法使用android.arch.lifecycle:extensions和com.android.support:preference

python for循环和remove方法

c# - 如何使我的 C# Windows 应用程序轻量级?