我有这个实际的导航树:
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。
我究竟做错了什么 ?
谢谢。