首先或最后调用super.onSaveInstanceState(bundle)?

Ken*_*ing 39 android

哪个更正确?这个:

@Override protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putLong(ID, mId);
}
Run Code Online (Sandbox Code Playgroud)

或这个:

@Override protected void onSaveInstanceState(Bundle outState) {
    outState.putLong(ID, mId);
    super.onSaveInstanceState(outState);
}
Run Code Online (Sandbox Code Playgroud)

他们都在我的姜饼设备和Froyo和冰淇淋三明治模拟器上为我工作,我已经看到尽可能多的例子说另一种方式.有关系吗?

Com*_*are 44

只要您的密钥不发生冲突(例如,ID与Android内部使用的密钥相同),两者就是相同的.

  • 通过Android代码调试后,我可以确认这一点.看起来Android不会尝试保存`Bundle outState`直到_after_你的`onSaveInstanceState()`方法被调用.因此,只要键不碰撞,你的方法在何处调用`super.onSaveInstanceState(outState)`并不重要.如果你愿意,你甚至可以在你的方法中调用它! (2认同)