Я пытаюсь создать Intent
с ArrayList<Byte>
в качестве дополнительного.
Итак, у меня есть 3 варианта:
putParceableArrayList(key: String?, value: ArrayList<out Parceable!>?)
putByteArray(key: String?, value: ByteArray?)
putSerializable(key: String?, value: Serializable?)
Я бы предпочел не использовать 3-й вариант, потому что Разборчивые объекты быстрее, чем Сериализуемые ( Android: Разница между Разборчивыми и Сериализуемыми? ).
Отбрасывая эту опцию, я хочу использовать первую опцию, потому что мне нужен этот объект как ArrayList, а не как собственный массив bytes[]
(ByteArray
на Kotlin).
Проблемаявляется тем, что объект Byte является нативным, поэтому он не реализует Parceable.Так что я не могу использовать первый вариант, потому что он требует ArrayList<out Parceable>
.
Лучший вариант, который я нашел, - преобразовать ArrayList
в ByteArray
и преобразовать его обратно в ArrayList
, когдаЯ распаковываю дополнения примерно так:
intent.extras?.putByteArray(event, response.toByteArray())
[...]
var list = Arrays.asList(intent.extras?.getByteArray(event))
Какой вариант лучше?Спасибо!