在SQLite中查询或moveToNext上花费的时间是多少?

时间:2013-09-13 21:13:58

标签: java android sqlite user-interface

在Android应用中,您使用方法ContentResolver.query()来查询URI。结果,您获得了一个Cursor对象,然后您只需重复执行Cursor.moveToNext()以从数据库中读取数据。

可以在后台线程(例如query()的{​​{1}})中执行doInBackground但在GUI线程中执行AsyncTask调用(例如{{1 }})?

也就是说,花费的时间主要是moveToNext,因此onPostExecute调用很快,相反,行为是懒惰的,实际的查询执行被推迟,直到请求数据为止?

1 个答案:

答案 0 :(得分:1)

在Android中,SQLite游标不会读取数据,直到第一次调用需要知道查询是否返回某些记录,然后将所有数据读入缓存。

所以第一个moveToNext()调用是一个很慢的调用。 您可能希望在后台主题中添加getCount()调用。