Android Navigate Up机制

时间:2016-06-07 05:23:39

标签: android android-intent android-navigation up-navigation

在分层导航中,用户可以通过按工具栏左侧的向上按钮来向上导航。从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功能的源代码!我有谷歌搜索,但无法找到我需要的答案!提前谢谢!

0 个答案:

没有答案