为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Parcel的帮助下将一个Parcelable编组和解组为字节数组?

如何在Parcel的帮助下将一个Parcelable编组和解组为字节数组?

慕妹3242003 2019-11-12 09:34:46
我想编组和解编实现Parcelable到/从字节数组的类。我很好地意识到以下事实:Parcelable表示形式不稳定,因此并不意味着可以长期存储实例。但是我有一个用例,我需要序列化一个对象,并且如果由于内部Android更改而导致解组失败,则这不是最重要的事情。而且该类已经在实现Parcelable接口。给定一个类MyClass implements Parcelable,我如何(ab)使用该Parcelable接口进行编组/解组?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

public static byte[] pack(Parcelable parcelable) {

    Parcel parcel = Parcel.obtain();

    parcelable.writeToParcel(parcel, 0);

    byte[] bytes = parcel.marshall();

    parcel.recycle();

    return bytes;

}


public static <T> T unpack(byte[] bytes, Parcelable.Creator<T> creator) {

    Parcel parcel = Parcel.obtain();

    parcel.unmarshall(bytes, 0, bytes.length);

    parcel.setDataPosition(0);

    return creator.createFromParcel(parcel);

}


MyObject myObject = unpack(new byte[]{/* bytes */}, MyObject.CREATOR);


查看完整回答
反对 回复 2019-11-12
  • 3 回答
  • 0 关注
  • 887 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信