之前,service没有加入开机自启动的时候,service是在启动app的时候启动的,现在把service加入了开机自启动里,所以,在启动app的时候要做一个判断,判断该service是否已经启动,如果没有启动,则,启动。如果,已经启动,就不必在启动了。
现在把获取本机的所有启动的服务类名和判断某个service是否启动的代码贴上来分享给大家。
//获取所有启动的服务的类名
ActivityManager activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo>serviceList= activityManager..getRunningServices(30); //先获得运行着sevice的列表
private String getServiceClassName(List<ActivityManager.RunningServiceInfo> serviceList){
String res = "";
for(int i = 0; i < serviceList.size(); i ++){
res+=serviceList.get(i).service.getClassName()+ " /n";
}
return res;
}
//通过Service的类名来判断是否启动某个服务
private boolean serviceIsStart(List<ActivityManager.RunningServiceInfo> serviceList , String serviceClassName){
for(int i = 0; i < serviceList.size(); i ++){
if(serviceClassName.equals(serviceList.get(i).service.getClassName())){
return true;
}
}
return false;
}
接下来,接可以直接在要判断的地方 调用 serviceIsStart()。
例如:
final String serviceName = "com.simple.pushnotification.notificationService"; //我的一个服务
boolean flag = serviceIsStart(serviceList, serviceName);
if(flag) {
System.out.println("该服务已经启动!");
}else {
System.out.println("该服务还未启动!");
//可以在此添加 启动service的代码
}