我有这个实际的导航树:
A => B => ç
根据配置B可以跳过,导航变为:
A => ç
无论如何,B都是C的父母。
因此,当我导航到C(通过B或不通过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);
}
所以,根据documentation,当我触摸“向上”B时,应该创建或回击B活动。
问题:
当我跳过B(从A到C)时,如果我触摸“向上”应用程序正在关闭(因为A已经完成,预期的行为),而它应该创建B.
在onOptionsItemSelected()
shouldUpRecreateTask()
中,即使B不存在,也始终返回false。
如果我导航到C到B(A =&gt; B =&gt; C),向上按钮会正确地返回B.
我做错了什么?
感谢。