是否有可能以某种方式监听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应用程序.