检测另一个Android应用程序何时退出

时间:2014-08-24 21:57:06

标签: android

在我的应用程序中,我通过Intent启动,这是一个单独的应用程序,我无法控制它。我想检测 应用程序何时退出或者不再主动执行。当另一个进程退出时,有没有办法得到通知?

据我所知,我能做的最好的事情是:

  1. 启动未绑定的服务,该服务将轮询要启动的给定包ID
  2. 启动意图
  3. 服务以固定间隔轮询ActivityManager,以确定单独的应用程序何时退出
  4. 服务完成它需要做的工作,然后退出。
  5. 是否有更少的民意调查方法呢?

1 个答案:

答案 0 :(得分:0)

  

是否有更少的民意调查方法呢?

当其他某个进程终止时,不会发送广播或类似事件。因此,无论你做什么都将涉及投票。

另外,正如我在评论中暗示的那样,{L}开发人员预览版中不推荐使用getRecentTasks()getRunningTasks() ActivityManager,并且会在L及更高版本的设备上返回缩小的结果集。我不知道你是否正在投票。

另请注意,您自己的流程完全有可能在游戏开始之前终止。例如,用户可能处于漫长的游戏会话中,并且Android决定终止您的进程以释放其他进程的内存。考虑到您正在使用服务,这种可能性很低,但不是零。