Android - проблема с интерфейсом Serializable - PullRequest
2 голосов
/ 23 сентября 2011

Я использовал интерфейс Serializable для передачи объекта из одного действия в другое. Я использую putExtra на стороне отправителя и getSerializable на стороне получателя. Все отлично работает, но я получил (впервые) следующее сообщение об ошибке:

java.lang.RuntimeException: Parcelable встретил чтение IOException Сериализуемый объект

Я не понимаю, почему это исключение было сгенерировано, поскольку я использую getSerializable, а не getParcelable.

Я знаю, что вместо этого я должен реализовать интерфейс Parcelable, потому что он был разработан специально для Android (и это то, что я в итоге сделаю), но я хочу понять, почему я получаю эту ошибку.

Спасибо!

1 Ответ

1 голос
/ 23 сентября 2011

Parcelable упоминается в этой ошибке, потому что Intent, который вы отправляете от одного Activity к другому, имеет Bundle внутри, и это Bundle равно Parcelable. Когда вы звоните Intent.putExtra(), это добавляется к внутреннему Bundle. Когда Intent передается между действиями, его Bundle преобразуется в байтовый массив и из него, как и ваш Serializable объект.

Но я не знаю, почему возникает эта ошибка. Возможно, это связано с ошибкой в ​​реализации writeObject() / readObject().

...