putExtra:我应该如何处理大型数组?数据库或分割成更小的数组



我想知道以下哪些想法更能造句子:

我有三个超过5000个条目的数组。当我试图将它们放入Extra时,我变成了失败的BINDER TRANSACTION:

  1. 将这些大数组分成更小的数组,并通过putExtra

  2. 将它们分配给下一个活动
  3. 将这些条目保存到数据库并使用sqlite和游标?

提前感谢!

我会选择第二种情况。想象一下,由于某些原因,你必须创建超过3个数组,你真的会把它们分成更小的,修改代码,把它们传递给下一个活动吗?想象一下,现在您必须为另一个活动访问这些条目,您将不得不重新实现这些内容。这是不可维护的。

我不认为这是真正明智的使用额外的东西。通过创建数据库,您将能够:

1 -存储重要数据
2 -随处访问

我将在数据库中创建条目

我会选择第三个选项,它部分地使用了两者。

  1. 如果你觉得数据对你的应用程序有用,那么持久化数据(例如在DB中)。当你从webservice下载数据时,在解析之后,在把它交给UI线程之前,就这样做。
  2. 为可以从Activities访问的列表创建内存缓存。有人建议单例,这可能是好的,只是持有列表,但我更喜欢模型类无论是在Application或@注入。
  3. 如果有很多这样的列表,有时你想发送不同的,在Activities之间发送一个密钥。
  4. 在第二个Activity中从模型(或单例)检索数据时,请确保在进程被杀死并从DB重新创建列表后不会获得null。我建议不要对UI线程进行DB操作,让用户知道数据正在被重新创建,并将在几毫秒内出现。

这样你就避免了总是从DB获取数据的开销,你的UI是响应性的,也不需要做太多的打包。

相关内容

最新更新