未保存在onSaveInstanceState中的字段

时间:2012-12-22 17:28:00

标签: android android-progressbar

我正在阅读ProgressBar源代码,我到达了onSaveInstanceState

public Parcelable onSaveInstanceState() {
    // Force our ancestor class to save its state
    Parcelable superState = super.onSaveInstanceState();
    SavedState ss = new SavedState(superState);

    ss.progress = mProgress;
    ss.secondaryProgress = mSecondaryProgress;

    return ss;
}

可以看出,只保存了progresssecondaryProgress字段,那么用户可以设置的所有其他字段会发生什么,例如max?他们为什么不得救?

1 个答案:

答案 0 :(得分:2)

用户无法通过小部件直接设置android:max

一般来说,onSaveInstanceState()倾向于担心用户可变状态,例如是否检查CompoundButton,或者由于用户操作而在运行时很可能发生变化的状态,例如ProgressBar的进度状态。

当然,欢迎您使用保存其他所需数据的ProgressBar来子类化或分叉onSaveInstanceState(),或者让您的活动或片段将数据保存在{{{1}的实现中1}}。