包含普通类型的包给出了RuntimeException Unmarshalling未知类型代码

时间:2013-06-09 17:43:21

标签: android parcel

我想从onSaveInstanceState方法包裹一个Bundle来临时存储它。

@Override
        public void onSaveInstanceState(Bundle savedInstanceState) {
            savedInstanceState.putBoolean(..);
            savedInstanceState.putInt(..);
//...
           super.onSaveInstanceState(savedInstanceState);
           userInputs = savedInstanceState;
    }

我只使用putBoolean和putInt。 在其他地方我保存了这些数据:

Parcel p1 = Parcel.obtain();
p1.writeBundle(userInputs);
byte[] b1 = p1.marshall();

稍后重复使用:

Parcel p11 = Parcel.obtain();
p11.unmarshall(b1, 0, b1.length);
p11.setDataPosition(0);

Object o = p11.readValue(Bundle.class.getClassLoader());
Bundle result2 = (Bundle) o;

我得到了这个例外@ p11.readValue

java.lang.RuntimeException: Parcel android.os.Parcel@41e42c70: Unmarshalling unknown type code 4292 at offset 0

我不知道,问题是什么。

0 个答案:

没有答案