Android没有触发android:parentActivityName

时间:2016-04-14 19:08:07

标签: android

活动A是我的应用的主要启动器活动 A在某些条件下启动活动B. 活动C是设置活动

Android Manifest- C是B的父级,如下所示:

<activity
            android:name=".view.ActivityB"
            android:label="@string/title_activity_favorite"
            android:parentActivityName=".view.ActivityC">
            <!-- Parent activity meta-data to support 4.0 and lower -->
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".view.ActivityC" />
        </activity>

流速:

  1. 我启动了应用,活动A被称为
  2. A开始B
  3. 当我点击时     状态栏中的后退按钮,我被路由到A而不是C.任何线索为什么     这是发生了吗

2 个答案:

答案 0 :(得分:0)

您在了解活动如何开始和完成方面遇到了问题。举个例子,如果活动A启动活动B,那并不意味着系统正在创建活动C(因为是B的父级)将它插入A和B之间,这就是为什么当按下后面时活动A恢复。要在A和B之间添加活动C而不显式创建它,请阅读this post关于创建正确的后退导航。如果您有任何问题,请回复评论。

答案 1 :(得分:0)

这是混乱:

android Back Button正在调用(弹出)Back Stack的顶部,因此如果不进行手动操作,它将包含最后一个被调用的活动。在您的情况下Activity A就在Activity B之前调用,因此后堆栈的顶部为Activity A

但是android中还有另一个软后退按钮,如下图所示:

enter image description here

它通常显示在屏幕的左上角。此按钮的行为是Manifest中描述的内容。因此,如果您在Activity B并且按此按钮,则会转到Activity C而不是Activity A

您可以使用TaskStackBuilder

手动更改Back Button的行为