听ActivityManager的活动?
-
20-09-2019 - |
题
是否有可能以某种方式听到的事件的ActivityManager,例如在活动开始的?不ActivityManager发送广播节目?我没找到任何东西表示,它不会。
什么我基本上需要做的:我想我应用程序,以启动我的一个活动时一定(第三方)应用程序启动的/需要的焦点。问题是这种需要发生前的第三方程序实际上是显示。
我已经尝试迄今为止为解决方法:
- 调整你的输出:我查询系统日志每0.8s(过滤,以显示ActivityManager事件),但这吃了许多ressources
- getRunningTasks:慢下来的话很多,也并不是很安全,作为一项活动可能会在运行,但目前不在焦点
任何想法?
解决方案
我想没有实际上的其他遗留的方式来处理glabal系统的状态,只有
(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.getRecentTasks()-返回的一个列表的任务,当前正在运行,其中最近的是第一和老年人的后顺序。
对于细节检查 文档
也许虽然是一个Linux可以运行系统的工具
Runtime.getRuntime().exec("ps -aux | grep smth")
但我认为这将难以检测特定java应用程序。
其他提示
我认为你可以使用的发动模式,以确定其活动,以启动最高级别。请查看该问题: 安卓为singletask或实例启动模式?.也许它会帮助你。
我有一个看起来在来源,但似乎没有任何事件的广播。
https://android.googlesource.com/platform/packages/providers/ApplicationsProvider
不隶属于 StackOverflow