2016-04-14 72 views
1

活性A被用于我的应用程序 主发射活动A在某些条件 活动C是设置活动的Android无法触发机器人:parentActivityName

的Android Manifest- C开始活动的B是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. ,我被路由到C.没有任何线索,为什么 是这种情况正在发生
+0

你可以分享你ActivityB类代码吗?你是否也设置了HopeAsUp? – Eenvincible

回答

0

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

+0

实际上,海报是正确的。他没有按下后退按钮,他正在按回车按钮,应该返回到清单中指定的父活动。至少基于我对android文档的理解。 – dvallejo

0

这里是困惑:

了Android Back Button呼唤(膨化)返回堆栈的顶部,这样,如果不手动操纵,它包含了过去所谓的活动。在你的情况Activity A调用前Activity B所以返回堆栈的顶部是Activity A

但在Android另一回软按钮,显示如下图:

enter image description here

是通常显示在屏幕的左上角。此按钮的行为在您的Manifest中描述。所以,如果你是在Activity B和你按下这个按钮,你会去Activity C而不是Activity A

您可以手动更改Back Button的行为与TaskStackBuilder

+0

它不起作用。我有同样的问题。似乎parentActivityName需要被设置,但被忽略,并且总是返回到启动器活动。在这种情况下,与按下“后退”按钮的效果相同。 – dvallejo