Android如何检查天气我的服务是否正在运行

时间:2017-01-11 10:19:32

标签: android service

在我的SystemBroadcastReceiver中,我想检查BG服务是否正在运行天气,如果它已经运行,那么我将等待它完成。

我希望我的服务应该以不同的方式运行并仅在主线程上

2 个答案:

答案 0 :(得分:0)

使用以下方法检查服务是否正在运行:

 public static boolean isMyServiceRunning(Class<?> serviceClass, Context ctx) {
        final ActivityManager manager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }

答案 1 :(得分:0)

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

这适用于我的应用程序