当堆栈中的最后一个活动关闭时,我想取消绑定/断开/关闭/销毁我的服务(相同的过程)(例如:按后退键将关闭当前活动,您将看到Android主屏幕)< / p>
我怎么知道用户是否完全离开我的应用程序而不仅仅是一项活动?如果用户按下主页按钮,是否也可以捕获? (我知道我可以抓住onPause / onStop的活动,但用户可能会从一个活动切换到另一个活动..类似于我的第一个/主要问题)
答案 0 :(得分:1)
维护应用程序的活动堆栈。您可以通过多种方式实现这一目标:
如果您的应用程序有多个入口点,那么您可以跟踪用户已打开的活动以及它们当前的位置,并相应地在堆栈推出其最后一项时,弹出该服务。
如果您的应用没有多个入口点,那么您只需监控Launcher活动的onStop即可。
如果您还想在多任务处理时停止服务,那么您必须更有创意,并有意图并发送一些标志作为有效负载。如果通过开始您的另一项活动未设置标志,可能会停止服务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。