使用操作栏主页作为向上button,主页活动saveInstanceState始终为空

活动A ===点击button===>活动B

当按下button时,活动A不会被重新创build。

当按Homebutton时,活动A被重新创build。

所以,当A.onSaveInstanceState(Bundle outState)保存状态,并且在A.onRestoreInstanceState(Bundle savedInstanceState)时使用状态。

保存和使用工作正常(家庭作为向上button除外)

然而,

当按下回家时,系统重新创build活动A,并且savedInstanceState消失。

我怎样才能使用保存的实例状态?

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // I do not want this... // Home as up button is to navigate to Home-Activity not previous acitivity super.onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 

Solutions Collecting From Web of "使用操作栏主页作为向上button,主页活动saveInstanceState始终为空"

在onCreate()启用主页button。

 @Override public void onCreate(Bundle savedInstanceState) { ... getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } 

在onOptionItemSelected()方法中执行此操作。

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } 

这应该启用Up导航。 如果要使用savedInstanceState恢复父活动。 您应该在Manifest文件的父级活动中设置launchMode="singleTop"

欲了解更多信息,请访问http://developer.android.com/:提供导航

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: finish(); return true; } return super.onOptionsItemSelected(item); } 

我使用完成()确保NavUtils ;