如何知道上次关闭的活动是否是Android中堆栈中的最后一个活动?

时间:2013-06-23 07:37:51

标签: android

当堆栈中的最后一个活动关闭时,我想取消绑定/断开/关闭/销毁我的服务(相同的过程)(例如:按后退键将关闭当前活动,您将看到Android主屏幕)< / p>

我怎么知道用户是否完全离开我的应用程序而不仅仅是一项活动?如果用户按下主页按钮,是否也可以捕获? (我知道我可以抓住onPause / onStop的活动,但用户可能会从一个活动切换到另一个活动..类似于我的第一个/主要问题)

2 个答案:

答案 0 :(得分:1)

维护应用程序的活动堆栈。您可以通过多种方式实现这一目标:

  1. 如果您的应用程序有多个入口点,那么您可以跟踪用户已打开的活动以及它们当前的位置,并相应地在堆栈推出其最后一项时,弹出该服务。

  2. 如果您的应用没有多个入口点,那么您只需监控Launcher活动的onStop即可。

  3. 如果您还想在多任务处理时停止服务,那么您必须更有创意,并有意图并发送一些标志作为有效负载。如果通过开始您的另一项活动未设置标志,可能会停止服务onStop。

答案 1 :(得分:0)

这可能很有用:boolean Activity.isTaskRoot()

根据文档this method returns whether this activity is the root of a task. The root is the first activity in a task.

关注此link