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

Android如何检查我的服务是否正在运行,android,service,Android,Service,在我的SystemBroadcastReceiver中,我想检查BG服务是否正在运行,如果它已经在运行,那么我将等待它完成 我希望我的两个服务应该以不同的方式运行,并且只在主线程上运行使用以下方法检查服务是否正在运行: public static boolean isMyServiceRunning(Class<?> serviceClass, Context ctx) { final ActivityManager manager = (ActivityManag

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


我希望我的两个服务应该以不同的方式运行,并且只在主线程上运行

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

 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;
    }
public静态布尔isMyServiceRunning(类serviceClass,上下文ctx){
最终ActivityManager=(ActivityManager)ctx.getSystemService(Context.ACTIVITY_服务);
对于(ActivityManager.RunningServiceInfo服务:manager.getRunningServices(Integer.MAX_值)){
if(serviceClass.getName().equals(service.service.getClassName())){
返回true;
}
}
返回false;
}
专用布尔值isMyServiceRunning(类serviceClass){
ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
for(RunningServiceInfo服务:manager.getRunningServices(Integer.MAX_值)){
if(serviceClass.class.getName().equals(service.service.getClassName())){
返回true;
}
}
返回false;
}
对于我的应用程序来说,这项工作很好

请参见:可能重复的
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;
}