在Android中传递数据引用

时间:2014-01-02 00:19:33

标签: android bundle pass-by-reference parcelable

在Android中传递数据时(例如,在“活动”之间),似乎主要接受的方法是使用Bundles和Parcelables。这种方法的问题在于它序列化了所有数据,这是低效的。我想知道 - 有没有办法传递参考而不是数据本身的效率?

4 个答案:

答案 0 :(得分:1)

这可能效率较低(尽管在大多数情况下不应该产生很大影响),但避免在活动之间保持对象的引用。这有助于保持架构更清洁,更不容易出现内存泄漏。

在某些情况下,你可以使用Application类,静态助手类,单身人士或服务来帮助你,但要确保你知道你在做什么。

答案 1 :(得分:1)

我认为最好的方法是使所有数据模型对象都可以使用,并使所有活动扩展基类,并使用包装器或辅助方法在活动之间传递数据模型对象。

我在我的所有应用程序中使用这种方法,到目前为止,它非常有用,并最大限度地减少了活动和片段之间使用的引用数量。

答案 2 :(得分:0)

您可以使用多种技术,这取决于您要实现的目标,例如您可以使用单例来保持引用活动,或者您可以(尽管您确实不应该)使用静态参考。最后,这一切都归结为您试图传递的数据类型。 请记住,重建一个对象有时候比让它保持活着要好(直到它发生),垃圾收集器会清除它。

答案 3 :(得分:0)

我喜欢使用单身设计模式。 http://en.wikipedia.org/wiki/Singleton_pattern