我正在阅读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;
}
可以看出,只保存了progress
和secondaryProgress
字段,那么用户可以设置的所有其他字段会发生什么,例如max
?他们为什么不得救?
答案 0 :(得分:2)
用户无法通过小部件直接设置android:max
。
一般来说,onSaveInstanceState()
倾向于担心用户可变状态,例如是否检查CompoundButton
,或者由于用户操作而在运行时很可能发生变化的状态,例如ProgressBar
的进度状态。
当然,欢迎您使用保存其他所需数据的ProgressBar
来子类化或分叉onSaveInstanceState()
,或者让您的活动或片段将数据保存在{{{1}的实现中1}}。