来自Android教程:
static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
...
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
===================
Bundle savedInstanceState
< ---我们在这里传递一个新的Bundle对象还是现有的对象?
为什么我们最后通常在开始时调用super.onSaveInstanceState
?
答案 0 :(得分:1)
相同的对象,只需添加两个额外的键/值对。
在这种特殊情况下,如果在派生类实现中的代码之后调用父方法(onSaveInstanceState),则无关紧要。重要的是你要在那里调用它,以便父类(可能是Activity)可以存储它自己的状态。除非子方法中的代码与父方法的行为有任何关系,否则我通常将父方法称为此类方法的第一行。我想如果父类还将名为STATE_SCORE和STATE_LEVEL的相同键名称存储到Bundle中,则可能很重要。最后发生的最后一次调用会赢。