服务已开始但未在设置中显示 - >运行服务

时间:2017-11-20 19:56:12

标签: android service

我有一个从Service扩展的android服务,onStartCommand返回START_STICKY。该服务是自运行服务,没有人绑定它。

在我的MainActivity中,我正在使用

Intent startService = new Intent(getApplicationContext(), MyService.class);
startService(startService);

一切正常,除了在设置 - >正在运行服务'显示缓存进程'标签没有显示我的应用程序的任何内容,但在缓存的后台进程' tab show"正在使用的缓存服务"。我怀疑为什么没有显示在'显示缓存过程'选项卡,但我看到其他应用程序已显示?

1 个答案:

答案 0 :(得分:3)

原因是您的服务在与应用程序相同的进程上运行。如果您在清单文件中设置android:process=":yourServiceName",您的服务将启动一个新流程,您就可以看到您的服务了。

另外,请使用此方法检查您的服务是否实际运行

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