0

在分层导航中,用户通过按下工具栏左侧的向上按钮向上导航。在 Jelly Bean 中,有一种简单的方法可以实现此功能。parentActivityName通过在 AndroidManifest.xml 文件中添加属性来启用分层导航。

当用户从 ChildActivity 向上导航时,会创建如下意图:

Intent intent = new Intent(this, ParentActivity.class);
startActivity(intent);
finish();

我想知道幕后究竟发生了什么,尤其是意图包含什么?

此外,当我想保留父活动的状态时。我知道它可以使用addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP). 像 Android 一样:向上导航到父 Activity 会重新创建父 Activity 第一个答案说意图包含Intent.FLAG_ACTIVITY_CLEAR_TOP. 此标志的标准行为是完成任务堆栈中父 Activity 顶部的所有 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功能的源代码!我有谷歌搜索,但找不到我需要的答案!提前致谢!

4

0 回答 0