2

我有这个实际的导航树:

A => B => C

根据配置B可以跳过导航变成:

A => C

不管怎样,B 还是 C 的父母。

因此,当我导航到 C(是否通过 B)时,我希望在触摸操作栏的向上按钮时到达 B。

我的清单是这样定义的:

 <activity android:name="my.package.A"></activity> 
 <activity android:name="my.package.B"></activity> 
 <activity android:name="my.package.C"
           android:parentActivityName="my.package.B"> 
 </activity>

我的应用程序针对 android 4.1 及更高版本,因此不需要<meta data>标签

C活动是这样设置的:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_int);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

因此,根据文档,当我触摸“向上”时,应该创建或恢复 B 活动。

问题 :

当我跳过 B(从 A 到 C)时,如果我触摸“向上”应用程序正在关闭(因为 A 已经完成,预期的行为)而它应该创建 B。

onOptionsItemSelected() shouldUpRecreateTask()即使 B 不存在,in也总是返回 false。

如果我通过 B(A=>B=>C)导航到 C,向上按钮正确地带回 B。

我究竟做错了什么 ?

谢谢。

4

0 回答 0