我想知道以下哪些想法更能造句子:
我有三个超过5000个条目的数组。当我试图将它们放入Extra时,我变成了失败的BINDER TRANSACTION:
-
将这些大数组分成更小的数组,并通过putExtra
将它们分配给下一个活动 将这些条目保存到数据库并使用sqlite和游标?
提前感谢!
我会选择第二种情况。想象一下,由于某些原因,你必须创建超过3个数组,你真的会把它们分成更小的,修改代码,把它们传递给下一个活动吗?想象一下,现在您必须为另一个活动访问这些条目,您将不得不重新实现这些内容。这是不可维护的。
我不认为这是真正明智的使用额外的东西。通过创建数据库,您将能够:
1 -存储重要数据
2 -随处访问
我将在数据库中创建条目
我会选择第三个选项,它部分地使用了两者。
- 如果你觉得数据对你的应用程序有用,那么持久化数据(例如在DB中)。当你从webservice下载数据时,在解析之后,在把它交给UI线程之前,就这样做。
- 为可以从
Activities
访问的列表创建内存缓存。有人建议单例,这可能是好的,只是持有列表,但我更喜欢模型类无论是在Application
或@注入。 - 如果有很多这样的列表,有时你想发送不同的,在
Activities
之间发送一个密钥。 - 在第二个
Activity
中从模型(或单例)检索数据时,请确保在进程被杀死并从DB重新创建列表后不会获得null。我建议不要对UI线程进行DB操作,让用户知道数据正在被重新创建,并将在几毫秒内出现。
这样你就避免了总是从DB获取数据的开销,你的UI是响应性的,也不需要做太多的打包。