毋庸赘言 代码如下:
package com.example.administrator.mobilesafe.Utils;
import android.app.ActivityManager;
import android.app.ApplicationErrorReport;
import android.content.Context;
import java.util.List;
/**
* Created by Administrator on 2017/9/29.
* 判断服务是否开启
* ture 服务运行
* false 服务停止
* 传参数服务名字
*/
public class serviceUtil {
// 传参数Context便于获得上下文环境获得
public static boolean isRunning(Context cxt,String serviceName){
// 1 获取activityManager 管理对象 其可以获得当前手机正在运行的所有服务
ActivityManager aAM = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
// 2 获取正在运行的服务(多少个服务一般100够大了,目前手机一般不会那么多)
List<ActivityManager.RunningServiceInfo> runningService= aAM.getRunningServices(1000);//服务过多站内存
//遍历所有服务集合 获得服务名字 与传递的服务名字作比较 如果一致说明正在进行
for (ActivityManager.RunningServiceInfo run:runningService) {
// 获取每个真正运行的服务名
if (serviceName.equals(run.service.getClassName())){
// 匹配上返回true 匹配不上直接false
return true;
}
}
return false;
}
}
调用注意
demo:
// 传参数要传完整类名
boolean isRunning = serviceUtil.isRunning(getApplicationContext(),"com.example.administrator.mobilesafe.service.addressService");