通过Android中的意图传递复杂对象

b85*_*411 5 android android-intent

我有一个具有以下类字段的对象:

int,int,String,MyDatabaseType(自定义对象),List <MyDatabaseDetail>(自定义对象的数组列表)

我可以通过意图/捆绑传递吗?

我已经玩了一些可序列化和可分配的东西,但我无法让它工作.我是否需要使所有自定义对象类型都可以进行,而不仅仅是我要传递的主要对象类型?

当然有更好的方法吗?

EJK*_*EJK 4

当您在 Intent 中传递数据时,它必须是可 Parcelable 的。这是因为意图可能会传递到不同的应用程序,从而传递到不同的虚拟机。由于您的对象可能跨越进程边界,因此它需要一种允许保存/恢复的机制。这类似于通过 Web 服务调用传递数据(在这种情况下,对象被“扁平化”为 XML 或 JSON 之类的东西)。

即使意图保留在您的应用程序中,即使 Android 选择终止/重新启动您的应用程序(如果内存不足,也会发生这种情况),可分割性也允许对象生存。

可以使用序列化代替分区,但分区更有效。