替换Parcelable接口的最佳实践

时间:2012-07-23 12:51:54

标签: android ipc parcelable parcel

我通常使用接口Parcelable将数据从一个Activity传递到另一个Activity。如果数据不是那么多,它工作正常。但是,有些情况下我必须将大量数据传递给Activity。这些数据的编组似乎没有任何错误,但是解组会产生如下错误:

07-23 14:26:34.215: E/AndroidRuntime(29379): java.lang.OutOfMemoryError: java.lang.Object[] of length 1075971147 exceeds the VM limit

似乎只有太多的数据才能被解组。一个真正的Hackish解决方案(我真的不喜欢)将为该特殊Activity提供一个静态方法来将数据传递给它,在onCreate()查找它。这至少适用于我控制源的Activity,但如果我没有,则会失败。

我想知道是否有其他可接受的attemts,将一堆数据从一个Activity传递到另一个Activity。如果我可以重用一些我已经为Parcelable接口编写的代码,那将是非常好的,但这不是一个要求

2 个答案:

答案 0 :(得分:1)

如何创建全局变量(如描述here)?有一段时间我一直在努力解决同样的问题,最后我发现这一切都是有效的(即使我不能说“全球”看起来像是一个“好习惯”)。

答案 1 :(得分:1)

如何使用总线架构(EventBus / Otto),那么您可以在任何Android组件之间传输任何POJO。