所以我一直在更深入地阅读LiveData
,我的好奇心被激发了。LiveData
可以包含任何内容的列表,但就内存分配而言,这与常规List
相比如何。我知道一般来说,这取决于存储的内容。如果只有1个浮点和100个int,则List<int>
可以大于List<float>
。
但是,举个例子,假设我有一个由10个电话号码组成的LiveData<List<int>>
和一个相同电话号码的List<int>
。LiveData
会占用更多内存吗?
我知道LiveData
在保持UI更新方面有一个特定的目的(我可能没有准确地阐述这一点(,并且需要Observer
,而普通的List
更容易使用,但不能满足LiveData
所满足的需求。
还是现在大多数设备都有足够的内存,这基本上是一个没有意义的问题?
LiveData会占用更多内存吗?
对于相同的基础列表,是。它总是会占用它所包含的数据之外的一些空间。查看源代码,了解它在包含的数据对象上实际添加了什么。
你可能想得太多了。如果你有内存不足的问题,几乎可以肯定不是因为任何LiveData。你的列表本身可能是更大的问题,而核心Android运行时的其他部分将使你的LiveData及其内容的大小相形见绌。