【发布时间】:2015-01-22 18:24:47
【问题描述】:
我试图弄清楚是否有一种方法可以区分进程是应用程序还是独立服务(即 - 不是本地服务,而是在自己的进程中运行的服务)。
我正在使用 ActivityManager.getRunningAppProcesses 来获取正在运行的应用程序进程,并且还在使用 ActivityManager.getRunningServices 来获取正在运行的服务(不幸的是,getRunningTasks API 已被弃用)。
当我比较两者的结果时,我发现两者中有许多相同的进程名称和 ID (pid)。
对于那些进程名称也存在于从 RunningAppProcesses 派生的列表中的服务,我必须假设这些服务是驻留在应用程序进程中的本地服务(如果我在这个假设中错了,请告诉我)。
似乎知道一个进程是否是独立服务的唯一方法是获取两个列表,然后从服务进程列表中删除所有 PID 与应用列表中的一个匹配的进程。结果会给我独立的服务。
有没有更简单的方法来获取这些信息?
【问题讨论】: