我们在这里传递一个新物体吗?

时间:2014-04-13 20:00:29

标签: android object

来自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);
}

===================

  1. Bundle savedInstanceState< ---我们在这里传递一个新的Bundle对象还是现有的对象?

  2. 为什么我们最后通常在开始时调用super.onSaveInstanceState

  3. 抱歉,如果他们是愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

  1. 相同的对象,只需添加两个额外的键/值对。

  2. 在这种特殊情况下,如果在派生类实现中的代码之后调用父方法(onSaveInstanceState),则无关紧要。重要的是你要在那里调用它,以便父类(可能是Activity)可以存储它自己的状态。除非子方法中的代码与父方法的行为有任何关系,否则我通常将父方法称为此类方法的第一行。我想如果父类还将名为STATE_SCORE和STATE_LEVEL的相同键名称存储到Bundle中,则可能很重要。最后发生的最后一次调用会赢。