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

时间:2022-07-28
本文章向大家介绍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;
}

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