2

目前我使用此代码(在我的后台服务中)来确定当前的前台应用程序:

List<ActivityManager.RunningTaskInfo> runningTask = activityManager.getRunningTasks(1);
ActivityManager.RunningTaskInfo ar = runningTask.get(0);
return ar.topActivity.getPackageName();

问题是它在 99% 的情况下返回了正确的前台应用程序,但有时它返回了错误的应用程序。例如,当我使用图库然后返回启动器时,有时它会报告启动器,有时它会进一步报告图库!对于我的应用程序,确定正确的前台应用程序非常重要。有没有更好(100% 可靠)的解决方案?

提前致谢!

4

1 回答 1

3

没有 100% 确定的方法来检查前台应用程序。您当前轮询正在运行的任务的方法几乎与它一样好。

这个答案详细说明了一个更复杂的实现,它可能比你的更准确,但在基础上它的想法是一样的。

于 2013-04-14T17:20:39.477 回答