我需要检测是否启动了应用程序,并且我已经读过 API 中没有任何东西可以实现这一点。有人建议授予应用程序读取日志并继续轮询它们的权限,但自 JB 以来此解决方案不起作用。我还发现,由于我只需要知道顶层应用程序是否发生更改,因此我可以执行以下操作:
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
String str = ((ActivityManager.RunningTaskInfo)am.getRunningTasks(1).get(0)).topActivity.getPackageName();
但我需要知道哪种方式是进行这种连续轮询的最佳方式,当然还有——当然——是否还有其他方式可以做到这一点。