在分层导航中,用户可以通过按工具栏左侧的向上按钮来向上导航。从Jelly Bean开始,有一种简单的方法可以实现这一功能。通过在AndroidManifest.xml文件中添加parentActivityName
属性来启用分层导航。
当用户从ChildActivity导航时,会创建如下所示的意图:
Intent intent = new Intent(this, ParentActivity.class);
startActivity(intent);
finish();
我想知道场景背后到底发生了什么,尤其是意图包含的内容?
此外,当我想保留父活动的状态时。我知道它可以使用addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
。喜欢
Android: navigating up to the parent activity recreates the parent activity第一个答案说意图包含Intent.FLAG_ACTIVITY_CLEAR_TOP
。此标志的标准行为是完成位于任务堆栈中的父Activity之上的所有活动,包括父Activity本身,然后启动父Activity的新实例。
但是当我在ChildActivity中添加以下代码,在先前的API 23中的设备中运行它时,ParentActivity将不会被销毁,系统只会恢复旧的父活动。在使用API 23的设备中运行它时,ParentActivity将被销毁,系统将实例化一个新的ParentActivity。但在这两种情况下,ParentActivity都会保留其状态。发生了什么事?
public Intent getParentActivityIntent() {
return super.getParentActivityIntent()
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
我可以在哪里找到实现UP功能的源代码!我有谷歌搜索,但无法找到我需要的答案!提前谢谢!