Parcelable与数据库读取的效率

时间:2013-10-05 19:45:25

标签: android android-fragments android-sqlite parcelable

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

创建一个学期后,我很明显希望在用户返回列表时显示它 为此,我有两个选择:

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

我的问题是;哪种方式会更快更有效? 数据库可能会超时,但对于parcel对象也是如此,特别是当它们嵌套并且有List个自定义对象等时,这使得这个决定更加重要。

1 个答案:

答案 0 :(得分:6)

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

那说,这实际上取决于数据库的大小。如果它相对较小(比如列表查询中返回的行数不足100行),我只需在onStart或onRestart中重新查询它。使一切变得更容易,更一致。如果该查询在返回列表时花费了大量时间,我会在Intent中发送它。

在不确定数据库访问是否成为瓶颈的情况下,不要进行优化(例如将所有内容设为Parcelable)。