什么时候使对象可打包而不是仅仅发送原始变量?

When to make an Object parcelable rather than just sending the primitive variables?

研究了一段时间还是有不明白的地方:

什么时候值得实施 Parcelable 而不是仅仅获取变量并将它们发送到新的 Activity? 例如,如果我搜索类似 "RecyclerView click open new Activity" 的内容,几乎每个人都会发布代码,在 Activity 1 中使用 getter 方法提取值,并通过多个 .putExtra 调用将它们发送到 Activity 2. 几乎没有人建议实施Parcelable。 我也看不出 Parcelable 在哪里可以节省精力或使代码更易于维护,因为无论如何我都必须为目标 Activity 中的每个值调用 .getXXX。

假设我有一个 RecyclerView,我想在单击按钮时打开一个新的 Activity,并且我想从 1 个 ArrayList 的 1 个对象中发送 3 个变量。我应该直接通过 3 个 .putExtra 调用发送变量还是实现 Parcelable 并发送整个对象?

在您的情况下,使用 putExtra 发送 3 个原始值应该就足够了。 Parcelable就是发送对象。通常这些对象包含包含其他对象或对象数组的对象。总之它用于发送复杂的对象。如果您需要将对象作为请求正文的一部分发送到您的服务,这也是必要的。

如果你没有,请不要使用 Parcelable。数据元素因为序列化本身需要一些时间。但是单独发送它们会更快。

将 parcelable 用于像这样微不足道的东西将是一种矫枉过正,因为它涉及为仅几个值构造新对象的开销。如果您只是为需要共享的值添加 .putExtra() 调用会更好,这应该足够了,就像我之前的其他人所说的那样。 :)