Android----列出設備中全部啓動的服務,及判斷某個服務是否開啓(服務狀態)!

今天作Android開機自啓動service的時候,忽然想到了個問題。php

以前,service沒有加入開機自啓動的時候,service是在啓動app的時候啓動的,如今把service加入了開機自啓動裏,因此,在啓動app的時候要作一個判斷,判斷該service是否已經啓動,若是沒有啓動,則,啓動。若是,已經啓動,就沒必要在啓動了。app

如今把獲取本機的全部啓動的服務類名和判斷某個service是否啓動的代碼貼上來分享給你們。this

//獲取全部啓動的服務的類名 spa

ActivityManager  activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);ci

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;
}get

//經過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;
}
it

應用demo列子:class

public void onCreate(Bundle savedInstanceState) {後臺

     ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
     List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(300);
     final String serviceName = "com.hw.zmxy.service.DetecteAlarmService"; // 個人一個服務
     boolean flag = serviceIsStart(serviceList, serviceName);
     if (flag) {
      Log.i(TAG, "DetecteAlarmService已經啓動過了!");
     } else {
      // 能夠在此添加 啓動service的代碼List

      Log.i(TAG, "DetecteAlarmService首次啓動!");
      Intent mIntent = new Intent(this, DetecteAlarmService.class);
      startService(mIntent);  // 開啓監測服務    
     }

}

/**
  * 經過Service的類名來判斷是否啓動某個服務
  */
 public 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;
 }

 殺不掉的後臺服務:

http://www.xuephp.com/main/detail.php?cid=40006

相關文章
相關標籤/搜索