【问题标题】:Call super.onSaveInstanceState(bundle) first or last?首先还是最后调用 super.onSaveInstanceState(bundle)?
【发布时间】:2012-04-26 22:26:21
【问题描述】:

哪个更正确?这个:

@Override protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putLong(ID, mId);
}

或者这个:

@Override protected void onSaveInstanceState(Bundle outState) {
    outState.putLong(ID, mId);
    super.onSaveInstanceState(outState);
}

它们都适用于我的 Gingerbread 设备以及 Froyo 和 Ice Cream Sandwich 模拟器,而且我看到的例子很多,其中一种方式和另一种方式一样多。有关系吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    只要您的键不冲突(例如,ID 与 Android 内部使用的相同),两者是相同的。

    【讨论】:

    • 通过Android代码调试后,我可以确认这一点。看起来 Android 不会尝试保存 Bundle outState,直到 您的 onSaveInstanceState() 方法被调用。因此,只要键不发生冲突,在您的方法中调用super.onSaveInstanceState(outState) 的位置并不重要。如果你愿意,你甚至可以在你的方法中间调用它!
    • @snark 保留键是什么?
    • @SaiprasadPrabhu:没有记录,我不记得每次遇到这个问题。八年前,我对此更加紧张。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 2013-06-22
    • 2021-09-11
    • 2023-04-06
    • 1970-01-01
    • 2018-12-02
    相关资源
    最近更新 更多