Parcelable与数据库读取的效率

Asa*_*saf 4 android parcelable android-fragments android-sqlite

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

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

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

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

Del*_*yan 6

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

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

在不确定数据库访问是否成为瓶颈的情况下,不要优化(通过例如使所有内容成为Parcelable).