根据上面显示的图像,我有一些疑问。要求按顺序阅读每个步骤: -
****我们在此步骤中的要求是 - 当活动D打开并且用户按下后退按钮时 - 我希望用户应该重定向回到 ACTIVITY C ,之后 ACTIVITY B 等等.. ** **
目前,当我们从活动D (来自Z)之后回来时,我们将被重定向到活动Z 。
答案 0 :(得分:5)
CLEAR_TOP不好,因为如果你以这种方式打开一个活动,它将删除整个堆栈,这听起来不像你想要的那样。
试试这个: 当启动活动E(来自D),F(来自E)和Z(来自F)时,使用标志“FLAG_ACTIVITY_NO_HISTORY”进行操作。此标志将阻止新活动出现在后台堆栈中。
请记住,您以这种方式打开的任何活动都不会在后台堆栈中注册。所以,如果你回来的时候(例如)你在F中,那么它将返回到D.
希望这有帮助!
答案 1 :(得分:0)
- >任何人都面临同样的问题。尝试发送意图以及标记' FLAG_ACTIVITY_CLEAR_TOP'和' FLAG_ACTIVITY_SINGLE_TOP'。
- >文档中提到的示例:link
考虑一个由活动组成的任务:A,B,C,D。如果D调用带有解析为活动B组件的Intent的startActivity(),则C和D将完成,B接收sentIntent,导致堆栈现在为:A,B。