androidx.core.os.ParcelableCompat 已弃用

androidx.core.os.ParcelableCompat is deprecated

应该使用什么,因为 class 已被弃用。 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];
        }

    });

Android dev Docs ask you to use Parcelable.ClassLoaderCreator 直接从 API v26.1.0 开始。

public static interface Parcelable.ClassLoaderCreator implements Creator<T> 

android.os.Parcelable.ClassLoaderCreator<T>

来自 Android Developer 文档

ParcelableCompat class was deprecated in API level 26.1.0.

Use Parcelable.ClassLoaderCreator directly.

所以更改您的代码

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];
    }

});

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];
    }
};