androidx.core.os.ParcelableCompat已过时

时间:2019-02-21 14:38:51

标签: 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];
        }

    });

2 个答案:

答案 0 :(得分:3)

摘自Android Developer文档

  

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

});

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

答案 1 :(得分:0)

Android dev Docs要求您直接从API v26.1.0开始使用Parcelable.ClassLoaderCreator

inject