如何确定用户正在使用的应用程序(在android中)?

时间:2011-05-23 18:00:19

标签: java android profile

我想记录用户每次使用的应用程序。我可以编写一个程序来保存手机上运行的进程,但我想知道哪一个是用户正在与之交互的进程。

1 个答案:

答案 0 :(得分:2)

我不知道这是否是Chris在评论中提到的内容,我不知道它有多可靠,但您可以遍历ActivityManager#getRunningAppProcesses ()返回的列表:

public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses ()
     

自:API Level 3

     

返回设备上运行的应用程序进程列表。

     

返回RunningAppProcessInfo个记录的列表,如果没有正在运行的进程,则返回null(它不会返回空列表)。未指定此列表排序。

然后,检查每个ActivityManager.RunningAppProcessInfo的重要性字段:

public int importance
     

自:API Level 3

     

系统对此流程的相对重要性级别。可以是IMPORTANCE_FOREGROUNDIMPORTANCE_VISIBLEIMPORTANCE_SERVICEIMPORTANCE_BACKGROUNDIMPORTANCE_EMPTY中的一个。对这些常量进行编号,使“更重要”的值始终小于“不太重要”的值。

您可以每30秒左右进行一次服务轮询并记录这些值。

(顺便说一句,您想要查找IMPORTANCE_FOREGROUNDIMPORTANCE_VISIBLE