Android TextView OnrestoreInstancestate获得错误的价值



我的代码就是这样:

    @Override
    public Parcelable onSaveInstanceState() {
        Parcelable superState = super.onSaveInstanceState();
        SavedState savedState = new SavedState(superState);
        savedState.progress = mProgress;
        return savedState;
    }
    @Override
    public void onRestoreInstanceState(Parcelable state) {
            SavedState savedState = (SavedState) state;
            mProgress = savedState.progress;
            super.onRestoreInstanceState(savedState.getSuperState());
    }

当我将其传递给onSaveInstanceState中的savedState时,mProgress值为60,我在onRestoreInstanceState中获得0。

如果我修改了代码 savedState.mProgress = mProgressonSavedInstanceStatesavedState.mProgress = 10,然后我在onRestoreInstanceState中获得10。

太奇怪了。如果我做mProgress静态,那么我会得到60。我不知道这是什么事。

使用这样的使用,

@Override
protected void onCreate(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
        mProgress = savedInstanceState.getInt("progress");            
    }
}
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("progress", mProgress);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    if (savedInstanceState != null) {
        mProgress = savedInstanceState.getInt("progress");            
    }
}

最新更新