Waz*_*_Be 7 navigation android android-intent back-stack
我完全赞同下面的导航

想象一下,Book详细信息是在BookDetailActivity的不同实例中创建的.
在book2详细信息中按下之前的堆栈是:
如果我遵循我将使用的指导方针:
Intent parentActivityIntent = new Intent(this, AllBooksActivity.class);
parentActivityIntent.addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(parentActivityIntent);
finish();
Run Code Online (Sandbox Code Playgroud)
但是这个代码的一大问题是BookDetailActivity(Book 1)还活着!
在"向上"之后按下后退按钮将带来第1册的细节.
如何杀死BookDetailActivity原始AllBooksActivity和我按下的活动之间的所有内容?
的相关指引文章指出以下几点:
实现注意:作为最佳实践,在实现Home或Up时,请确保清除任何后代屏幕的后栈.对于Home,后栈上唯一剩下的屏幕应该是主屏幕.对于向上导航,应从后向堆栈中删除当前屏幕,除非后退导航屏幕层次结构.您可以一起使用FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_NEW_TASK意图标记来实现此目的.
因为你这样做,BookDetailActivity1应关闭FLAG_ACTIVITY_CLEAR_TOP.唯一的方法是,如果它可以活着并按下后退显示它是否会在AllBooksActivity之前启动.
至于不需要FLAG_ACTIVITY_NEW_TASK(由android开发人员的答案建议):
使用此标志时,如果任务已在您正在启动的活动上运行,则不会启动新活动; 相反,当前任务将简单地以最后一个状态被带到屏幕的前面.
...所以如果您的活动存在,它将无法启动新任务.
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |