2017-04-12 125 views
1

我想知道什么是在这两种方法之间的活动之间旅行物体的最佳表现和更简单的方法。我知道Parcelable是专门为Android设计的,但是如何使用Gson解析一个复杂的对象或其中的一个数组,并将其设置为一个额外的字符串,在第二个活动中检索它并将其解析为对象。在我的例子中,我有一个内容列表,每个内容都有一个主题列表。使用parcelable,旅行JSON是比旅行对象更好还是更差的方式? 我排除像保存在磁盘上或使用可序列化的选项。Android - 使用Parcelable或Json在活动之间传递复杂对象?

+0

恕我直言,这两种应该被合并成一个单一的活动,或者你应该实施一些进程级高速缓存,这两个活动都可以访问。 – CommonsWare

+0

都不是。 Parcelables和JSON都涉及很多开销 - 绝对单位不是很多,但很多*,而不是简单地分配给变量。只有当您真的想要序列化某些内容或因其他原因而需要使用它们时(例如,您必须遵守Intent/Bundle/AIDL合同或从REST API接收数据时)才可以使用它们。与Parcelable JSON不同,它存储了参数的名称,因此它更具人类可读性,但由于它的原因,会占用更多的内存。 – user1643723

+0

至于相对性能(如“CPU时间,浪费(de)序列化”),两者之间应该没有差别。许多不受欢迎的JSON处理库(khm-G-kham-SON)使用Reflection,所以它们的速度很糟糕。但是,编写良好的JSON解串器(如LoganSquare)在序列化速度方面与Parcelable完全相同。 – user1643723

回答

0

选项1.将数据存储在集中式对象(单例等)中&然后在Activity中访问该对象。

假设你有一个单例类AppData。将数据存储在AppData中。直接在您的活动中使用AppData访问数据。

选项2.在相应的类中实现Parcelable,然后通过意向将可分段的对象传递给活动或优先存储可分配的数据。 How to make entity parcelable with just copy paste

选项3在相应的类实现Serializable

相关问题