Android检查服务状态,如启动/停止

时间:2016-07-31 07:48:38

标签: android

通过以下代码我想检查服务状态,如启动或停止,但此方法总是返回false,我无法检查

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

我将Service简化为DownloadFile并使用

boolean state = isServiceRunning("DownloadFile");

我正在尝试检查并测试

1 个答案:

答案 0 :(得分: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)

调用它