2016-07-31 34 views
0

通過這個下面的代碼我要檢查服務狀態,如啓動或停止,但此方法始終返回false,我不能檢查Android的檢查服務狀態,例如啓動/停止

public static boolean isServiceRunning(Context context, String className) { 
    boolean isRunning = false; 
    ActivityManager activityManager 
      = (ActivityManager) context.getSystemService(
      Context.ACTIVITY_SERVICE); 
    List<ActivityManager.RunningServiceInfo> servicesList 
      = activityManager.getRunningServices(Integer.MAX_VALUE); 
    for (ActivityManager.RunningServiceInfo si : servicesList) { 
     if (className.equals(si.service.getClassName())) { 
      isRunning = true; 
     } 
    } 
    return isRunning; 
} 

我有簡單ServiceDownloadFile

boolean state = isServiceRunning("DownloadFile"); 

我想檢查和測試

+0

用'si.service.getSimpleName()' – Shaishav

回答

0

你可以嘗試一個類似如下:

private boolean isMyServiceRunning(Class<?> serviceClass) { 
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
     if (serviceClass.getName().equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
    return false; 
} 

並通過調用它:isMyServiceRunning(MyService.class)

+1

謝謝你試試吧,請讓我來測試先生。 –

+0

@mahdipishguy檢查一下:) – alway5dotcom