何时使对象可分区而不仅仅是发送原始变量?

时间:2017-12-03 06:11:51

标签: android android-intent bundle parcelable

经过一段时间的研究,对我来说还有一些不清楚的地方:

何时值得实现Parcelable而不仅仅是获取变量并将它们发送到新的Activity? 如果我搜索例如" RecyclerView点击打开新活动",几乎每个人都会发布使用活动1中的getter方法提取值的代码,并通过多个.putExtra调用将它们发送到Activity 2.几乎没有人似乎建议实施Parcelable。 我也没有看到Parcelable在哪里节省了工作量或使代码更易于维护,因为我必须为目标Activity中的每个值调用.getXXX。

所以,让我说我有一个RecyclerView,我想在Button上打开一个新的Activity点击,我想从1个ArrayList中的1个Object中发送3个变量。我应该直接通过3 .putExtra调用发送变量还是实现Parcelable并发送整个Object?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

将parcelable用于像这样微不足道的事情将是一种过度杀伤,因为它涉及仅为几个值构造新对象的开销。如果你只是为需要共享的值添加.putExtra()调用会更好,这应该足够了,正如我之前所说的那些。 :)