4

我有一个以下列方式列出“学期”的片段:它访问数据库,生成一个数组,然后通过ListAdapter.
在该片段中还有一个添加按钮,用于打开一个新活动,其中用户可以创建一个新学期,该学期也被插入到同一活动中的数据库中。

创建一个学期后,我显然想在用户返回列表时显示它。
为此,我有两个选择:

  • 将创建的学期作为对象发送回片段。问题是它需要我在Parcelable我的大多数类上实现接口,因为它们是嵌套的,这真的很乏味。
  • 使列表从数据库中重新读取学期并从头开始重新创建视图。

我的问题是;哪种方式会更快更有效?数据库可能会超时,但对于包裹对象也是如此,尤其是当它们是嵌套List的并且有许多自定义对象等时,这使得这个决定变得更加关键。

4

1 回答 1

6

包裹超级快。它本质上是二进制打包数据,它确实是内存和 CPU 效率。

也就是说,这实际上取决于数据库的大小。如果它相对较小(例如,在列表查询中返回的行数少于 100 行),我只需在 onStart 或 onRestart 中重新查询它。让一切变得更容易、更一致。如果该查询在返回列表时需要很长时间,我会在 Intent 中发送它。

不要在不确定数据库访问是否是瓶颈的情况下进行优化(例如,使所有内容都可打包)。

于 2013-10-05T22:17:40.243 回答