我需要检测应用程序是否已启动,并且我读到 API 中没有任何内容可以实现这一点。
有人建议给应用程序读取日志并继续轮询它们的权限,但此解决方案自 JB 以来不起作用。
我还发现,由于我只需要知道顶层应用程序是否发生变化,我可以执行以下操作:

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
String str = ((ActivityManager.RunningTaskInfo)am.getRunningTasks(1).get(0)).topActivity.getPackageName();

但我需要知道哪种方式是进行这种连续轮询的最佳方式,当然,如果还有其他方法可以做到这一点。

最佳答案

您可以使用无障碍服务 okita 并捕获窗口更改事件

关于java - 检测包启动android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18427416/

10-12 04:28