【发布时间】:2015-04-13 14:33:25
【问题描述】:
上下文:
安卓
我在网上阅读了很多关于在活动之间传递数据的示例。
我学到了什么:
- 通过 Intent 传递原始数据 (intent.putExtra(key,value))
- 捆绑原始数据并将其放入intent.putExtra(key,bundle object)
- Parcelables -> 用于复杂对象和基元。
在你说之前,是的,我肯定错过了什么。
问题:
嗯,似乎有多种方法可以实现同一个目标。
如果我想传递一个自定义对象,Parcelable 是我的人选。但是我仍然需要“序列化”它,所以最后我也会有原语,对吧?
要传递原语,为什么我要在直接传递意图时使用捆绑包?
android 文档/论坛/博客示例不适合我。我的 C 背景仍然让我有点退缩。
顺便说一句,为什么要使用 3 种不同的方式来实现一个目标?
【问题讨论】:
-
Parcelable 更高效。使用parcelabler.com 制作您的包裹。 Bundles 可以包含 parcelables。
-
那么,是这样吗?对于我所有的情况,我应该忘记其他可能性,只使用 Parcelable ?那为什么另一个还在呢?向后兼容?
-
或者更好的是,尽量不要在活动之间传递大对象,而是传递
id's并从缓存中检索对象,等等。 ;) -
@MartínMarconcini:这非常有趣 => 你的意思是我应该用 R.blah 把它拿回来?
-
好吧,我不知道你想传递什么,但是序列化的整个概念会产生很多开销。对于一些小事情,这可能没问题,但也许你应该问自己,为什么我需要在活动之间传递这个“复杂”对象?如果有一个共同的地方(缓存?)存储这些东西并且我只有一种简单的方法来检索它们,那不是更好更干净吗?然后你只传递一个带有“键”的整数或字符串。我的评论不直接回复你的问题,但应该给你另一个观点
标签: java android android-intent bundle parcelable