【问题标题】:Passing arraylists between activities, Parcelable vs Serializable在活动之间传递数组列表,Parcelable vs Serializable
【发布时间】:2019-05-02 14:34:59
【问题描述】:

我正在尝试创建一个带有ArrayList<Byte>Intent 作为额外的。

所以我有 3 个选择:

  1. putParceableArrayList(key: String?, value: ArrayList<out Parceable!>?)
  2. putByteArray(key: String?, value: ByteArray?)
  3. putSerializable(key: String?, value: Serializable?)

我宁愿不使用第三个选项,因为 Parceable 对象比 Serializable 对象更快 (Android: Difference between Parcelable and Serializable?)。

放弃这个选项,我想使用第一个选项,因为我需要这个对象作为 ArrayList 而不是原生数组 bytes[](Kotlin 上的 ByteArray)。

问题是 Byte 对象是原生的,所以它没有实现 Parceable。所以,我不能使用第一个选项,因为它需要ArrayList<out Parceable>

我发现的最佳选择是将ArrayList 转换为ByteArray,然后在我像这样打开附加组件时将其转换回ArrayList

intent.extras?.putByteArray(event, response.toByteArray())

[...]

var list = Arrays.asList(intent.extras?.getByteArray(event))

哪个是最好的选择?谢谢!

【问题讨论】:

  • 如果你不能避免将整个列表作为额外的发送,我会使用 Serializable。

标签: android arrays arraylist kotlin


【解决方案1】:

你可以试试Parceler library,它让你的生活更简单,你会摆脱所有 Parcelable 接口样板代码

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2019-01-11
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多