Android BaseSavedState实现中未调用writeToParcel()

Android BaseSavedState实现中未调用writeToParcel(),android,android-custom-view,savestate,Android,Android Custom View,Savestate,在我的自定义视图中,我有: @Override public Parcelable onSaveInstanceState() { Parcelable superState = super.onSaveInstanceState(); return new SavedState(superState, mSomeBoolean); } @Override public void onRestoreInstanceState(Parcelable state) {

在我的自定义视图中,我有:

 @Override
public Parcelable onSaveInstanceState() {
    Parcelable superState = super.onSaveInstanceState();
    return new SavedState(superState,  mSomeBoolean);
}

@Override
public void onRestoreInstanceState(Parcelable state) {
    final SavedState savedState = (SavedState) state;
    super.onRestoreInstanceState(savedState.getSuperState());
    this.mSomeBoolean = savedState.someBoolean;   
}
My
SavedState
实现了
BaseSavedState
,问题是,
writeToParcel(Parcel out,int flags)
似乎没有被调用,但奇怪的是,状态被正确保存

我不明白为什么会发生这种情况,更不明白的是,
someBoolean
状态是如何保存的,尽管它没有写入
packet
。任何帮助或指导都会有所帮助


更新:

以下是
SavedState
实现:

  class SavedState extends View.BaseSavedState {  

boolean someBoolean;

SavedState(Parcelable superState, boolean someBoolean){
    super(superState);
    this.someBoolean = someBoolean;   
}

private SavedState(Parcel in) {
    super(in);
    this.someBoolean  = (in.readInt() != 0);      
}

@Override
public void writeToParcel(Parcel out, int flags) {
    super.writeToParcel(out, flags);
    out.writeInt(someBoolean ? 1 : 0);       
}

public static final Parcelable.Creator<SavedState> CREATOR
        = new Parcelable.Creator<SavedState>() {
    public SavedState createFromParcel(Parcel in) {
        return new SavedState(in);
    }

    public SavedState[] newArray(int size) {
        return new SavedState[size];
    }
};
类SavedState扩展View.BaseSavedState{
布尔;
SavedState(可包裹的超级状态,布尔值){
超级(超级国家);
this.someBoolean=someBoolean;
}
私有存储状态(包裹在中){
超级(in),;
this.someBoolean=(in.readInt()!=0);
}
@凌驾
公共无效写入包(包出,内部标志){
super.writeToParcel(输出,标志);
out.writeInt(someBoolean?1:0);
}
公共静态最终包裹。创建者
=新的Parcelable.Creator(){
public SavedState createFromParcel(中的地块){
返回新的SavedState(in);
}
public SavedState[]新数组(整数大小){
返回新的SavedState[大小];
}
};

}

问题在于,writeToParcel(Parcel out,int flags)似乎没有被调用
为什么要调用它?因为它是从
onSaveInstanceState()返回的
,根据文档,
视图使用返回的状态保存然后还原状态。在这里,我看不出与调用
writeToParcel
Parcelable
的常规实现的区别。我的意思是为什么应该调用writeToParcel?在这个答案中,作者实现了
writeToParcel
如果不调用,为什么?告诉我?好的,您的
SavedState
代码是什么?
问题是,writeToParcel(Parcel out,int flags)似乎没有被调用
为什么要调用它?因为它是从
onSaveInstanceState()返回的
,根据文档,
视图使用返回的状态保存然后还原状态。在这里,我看不出与调用
writeToParcel
Parcelable
的常规实现的区别。我的意思是为什么应该调用writeToParcel?在这个答案中,作者实现了
writeToParcel
如果不调用,为什么?接我?好的,您的
SavedState
代码是什么?