2016-07-31 32 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