相关疑难解决方法(0)

如何检查服务是否在Android上运行?

如何检查后台服务(在Android上)是否正在运行?

我想要一个能够切换服务状态的Android活动 - 它可以让我打开它,如果它打开则关闭.

android android-service

900
推荐指数
17
解决办法
45万
查看次数

如何检查服务是否在Android 8(API 26)上运行?

升级到Android 8后,我的应用程序的某些功能已经破坏,甚至没有明确定位到API 26.特别是,用于检查服务是否正在运行的良好旧函数(如此处的StackOverflow中所述:如何检查服务是否在Android上运行?)不再起作用.

为了刷新我们的集体记忆,这是一个经典的方法:

private boolean isMyServiceRunning(Class<?> serviceClass) {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

现在的问题getRunningServices是现在已经弃用,并且不再返回正在运行的服务.有没有人在Android 8上遇到过这个问题?有没有官方解决方案(或黑客)?我还应该指出,我想要查找的服务与调用的代码不在同一个进程/应用程序中isMyServiceRunning()(由于向后兼容性原因,仍提供该功能)

java android android-8.0-oreo

6
推荐指数
1
解决办法
3674
查看次数

标签 统计

android ×2

android-8.0-oreo ×1

android-service ×1

java ×1