是否有可能以某种方式听到的事件的ActivityManager,例如在活动开始的?不ActivityManager发送广播节目?我没找到任何东西表示,它不会。

什么我基本上需要做的:我想我应用程序,以启动我的一个活动时一定(第三方)应用程序启动的/需要的焦点。问题是这种需要发生前的第三方程序实际上是显示。

我已经尝试迄今为止为解决方法:

  1. 调整你的输出:我查询系统日志每0.8s(过滤,以显示ActivityManager事件),但这吃了许多ressources
  2. 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top