androidx.core.os.ParcelableCompat 已弃用

Alb*_* PR 1 java android androidx

应该使用什么,因为该类已被弃用。ParcelableCompat已过时,newCreator()已过时,ParcelableComparCreatorCallbacks <>已被弃用。谢谢!

public static final Parcelable.Creator<SavedState> CREATOR
            = ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks<SavedState>() {

        @Override
        public SavedState createFromParcel(Parcel in, ClassLoader loader) {
            return new SavedState(in, loader);
        }

        @Override
        public SavedState[] newArray(int size) {
            return new SavedState[size];
        }

    });
Run Code Online (Sandbox Code Playgroud)

Nhấ*_*ang 5

来自Android 开发者文档

ParcelableCompat 类在 API 级别 26.1.0 中已弃用。

直接使用Parcelable.ClassLoaderCreator

所以改变你的代码

public static final Parcelable.Creator<SavedState> CREATOR
        = ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks<SavedState>() {

    @Override
    public SavedState createFromParcel(Parcel in, ClassLoader loader) {
        return new SavedState(in, loader);
    }

    @Override
    public SavedState[] newArray(int size) {
        return new SavedState[size];
    }

});
Run Code Online (Sandbox Code Playgroud)

public static final Parcelable.ClassLoaderCreator<SavedState> CREATOR 
        = new Parcelable.ClassLoaderCreator<SavedState>() {

    @Override
    public SavedState createFromParcel(Parcel source) {
        return createFromParcel(source, null);
    }
    
    @Override
    public SavedState createFromParcel(Parcel source, ClassLoader loader) {
        return new SavedState(source, loader);
    }
    
    @Override
    public SavedState[] newArray(int size) {
        return new SavedState[size];
    }
};
Run Code Online (Sandbox Code Playgroud)