ActivityManager#getRunningServices返回手动停止的服务

时间:2012-01-03 07:58:52

标签: android service

activityManager.getRunningServices(Integer.MAX_VALUE);

此方法返回一个列表,其中包含手动停止的服务。

设置>应用程序>运行服务

1 个答案:

答案 0 :(得分:2)

使用onDestroy或onSometing事件或Binders或静态变量的所有方法都无法可靠地运行,因为作为开发人员,您永远不知道,当Android决定杀死您的进程或者调用了哪些提及的回调时。请注意" killable" Android文档中生命周期事件表中的列。

//使用此代码检查您的服务是否正在运行

private boolean isMyServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if ("com.example.MyService".equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}