Android判斷後臺Service服務是否運行,獲取所有的服務

在項目開發過程中,常常需要在開啓一個服務之前判斷該服務是否已經在運行。

//本方法判斷自己寫的一個Service-->com.star.myService是否已經運行  
public static boolean isServiceRunning()  
 {  
  ActivityManager myManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);  
  ArrayList<RunningServiceInfo> runningService = (ArrayList<RunningServiceInfo>) myManager.getRunningServices(30);  
  for(int i = 0 ; i<runningService.size();i++)  
  {  
   if(runningService.get(i).service.getClassName().toString().equals("com.star.myService"))  
   {  
    return true;  
   }  
  }  
  return false;  
 }  


以傳參的方式將該方法改造成判斷服務是否運行的通用方法,開啓服務前先判斷,避免重複開啓,引發不可預料的異常。

//本方法判斷服務是否已經運行  
public static boolean isServiceRunning(String serviceName)  
 {  
  ActivityManager myManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);  
  ArrayList<RunningServiceInfo> runningService = (ArrayList<RunningServiceInfo>) myManager.getRunningServices(30);  
  for(int i = 0 ; i<runningService.size();i++)  
  {  
   if(runningService.get(i).service.getClassName().toString().equals(serviceName))  
   {  
    return true;  
   }  
  }  
  return false;  
 }

更多最新資訊請關注本博客!點擊進入:來自星星的禮丶精品屋


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章