Android判断后台服务是否开启的两种方法实例详解

Android判断后台服务是否开启的两种方法实例详解

最近项目用到后台上传,就开启了一个服务service。

但是刚开始用这种方法,有些机型不支持:酷派不支持。然后又换了第二种判断方法。

//  public boolean isServiceWork(Context mContext, String serviceName) {
//    boolean isWork = false;
//    ActivityManager myAM = (ActivityManager) mContext
//        .getSystemService(Context.ACTIVITY_SERVICE);
//    List<ActivityManager.RunningServiceInfo> myList = myAM.getRunningServices(40);
//    if (myList.size() <= 0) {
//      return false;
//    }
//    for (int i = 0; i < myList.size(); i++) {
//      String mName = myList.get(i).service.getClassName().toString();
//      if (mName.equals(serviceName)) {
//        isWork = true;
//        break;
//      }
//    }
//    return isWork;
//  }

第二种是:传入service的包名

private boolean isServiceRunning(String ServicePackageName) {
  ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
  for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
    if (ServicePackageName.equals(service.service.getClassName())) {
      return true;
    }
  }
  return false;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!