判断Service是否运行
我们怎么判断一个Service是否运行呢
其实也是最简单的原理,就是获取所有正在运行的Service
如果里面有这个Service,那么就是在运行
如果没有,那么就是没有运行
一般这种功能我们就做成工具类
public static boolean isServiceRunning(Context context,String serviceClassName){
//获取服务是否开启
//进程的管理者,活动的管理者
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
//获取系统中正在运行的所有服务
//maxNum : 获取服务的上限个数,最多获取多少个
List<RunningServiceInfo> runningServices = activityManager.getRunningServices(1000);
for (RunningServiceInfo runningServiceInfo : runningServices) {
//获取正在运行的服务的组件表示
ComponentName componentName = runningServiceInfo.service;
String className = componentName.getClassName();
//判断获取的正在运行的服务的全类名和我们传递过来的服务的全类名是否一致,一致,表示运行,不一致,表示没有运行
if (serviceClassName.equals(className)) {
return true;
}
}
return false;
}