android – 收听ActivityManager事件?

是否有可能以某种方式监听ActivityManager的事件,例如什么时候开始活动? ActivityManager是否发送广播?我没有找到任何迹象表明它确实存在.

我基本上需要做的是:每当某个(第三方)应用程序启动/关注时,我希望我的应用程序启动我的一个活动.问题是这需要在实际显示第三方应用程序之前发生.

到目前为止我尝试过的解决方法:

> Logcat输出:我每0.8秒查询一次logcat(过滤后只显示ActivityManager事件)但这会占用很多资源
> getRunningTasks:手机速度慢下来并且不太安全,因为活动可能正在运行但目前没有关注

有任何想法吗?

解决方法:

我认为实际上没有其他传统的方法来处理glabal系统状态

 (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

ActivityManager.getRecentTasks() – 返回当前正在运行的任务列表,其中最新的是按顺序排列的第一个和更早的任务.

有关详情,请查看docs

也许虽然Android是Linux,但你可以运行类似的系统工具

Runtime.getRuntime().exec("ps -aux | grep smth")

但我认为很难检测出特定的java应用程序.

上一篇:通过logcat在Android上调试WebView(Ionic)应用程序


下一篇:常用获取Android崩溃日志的几种方法