活性甲===点击按钮===>活动乙
当按下后退按钮,活动A不会重新创建。
当按home高达按钮,活性A被重建。
所以我保存状态时A.onSaveInstanceState(捆绑outState),并使用状态时A.onRestoreInstanceState(捆绑savedInstanceState)。
保存和使用优良工程(除家庭为向上按钮)
。
然而,
当按下家里高达键,系统重新创建活动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);
}
在OnCreate()启用主页按钮。
@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);
}
这将使向上导航。 如果你想用savedInstanceState恢复父活动。 你应该设置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的insteed;
文章来源: Using actionbar home as up button, home activity saveInstanceState is always null