我有三个活动A-> B-> C.有时我直接从A启动Activity C.即使这样,当用户按下“向上”按钮时,我想去活动B.所以经过大量搜索,我这样做:
的AndroidManifest.xml
<activity
android:name=".B"
android:parentActivityName=".A"
android:launchMode="singleTop"/>
<activity
android:name=".C"
android:parentActivityName=".B"/>
在活动C 中:
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
....
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent upIntent = NavUtils.getParentActivityIntent(this);
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this,upIntent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
但是当我从A开始活动C时,向上按钮只返回A,而不是创建B的新实例。 甚至是android docs状态:
当您调用此方法时,它将完成当前活动并启动(或恢复)相应的父活动。如果目标父活动在任务的后台堆栈中,则将其提前。
我在这里遗漏了什么吗?