1

当堆栈中的最后一个活动关闭时,我想解除绑定/断开连接/关闭/销毁我的服务(相同的过程)(例如:按返回键将关闭当前活动,您将看到 Android 主屏幕)

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

4

2 回答 2

1

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

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

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

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

于 2013-06-23T07:46:41.870 回答
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.

按照这个链接

于 2013-06-23T07:51:41.213 回答