基本上,我想知道另一个应用程序何时启动,因此我可以以特定方式调整我的应用程序。例如,如果用户启动GMail应用程序,我的服务可以检测到并做出反应。
我目前的想法是检查getRunningTasks()
类ActivityManager
中每个元素的'topActivity'。但这听起来相当昂贵,因为它需要不断检查后台(我对我的应用程序的CPU使用率非常挑剔)。
如果有人知道更好的方式,我很乐意听到它!
答案 0 :(得分:2)
没有办法这样做的“好方法”意味着一个BroadcastListener,因为applaunch不会被广播。唯一的方法是启动检查getRunningTasks()
的服务
(为了不加载CPU太多,您还可以检查前台有什么应用程序。如果您对该技术感兴趣,我会搜索代码)
以5-10秒的间隔检查服务。同时在SCREEN_OFF处关闭服务并在SCREEN_ON重新启动它。
很抱歉,但没有别的办法。