我有一个从Service扩展的android服务,onStartCommand返回START_STICKY。该服务是自运行服务,没有人绑定它。
在我的MainActivity中,我正在使用
Intent startService = new Intent(getApplicationContext(), MyService.class);
startService(startService);
一切正常,除了在设置 - >正在运行服务'显示缓存进程'标签没有显示我的应用程序的任何内容,但在缓存的后台进程' tab show"正在使用的缓存服务"。我怀疑为什么没有显示在'显示缓存过程'选项卡,但我看到其他应用程序已显示?
答案 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;
}