在Android应用中,您使用方法ContentResolver.query()
来查询URI。结果,您获得了一个Cursor
对象,然后您只需重复执行Cursor.moveToNext()
以从数据库中读取数据。
可以在后台线程(例如query()
的{{1}})中执行doInBackground
但在GUI线程中执行AsyncTask
调用(例如{{1 }})?
也就是说,花费的时间主要是moveToNext
,因此onPostExecute
调用很快,相反,行为是懒惰的,实际的查询执行被推迟,直到请求数据为止?
答案 0 :(得分:1)
在Android中,SQLite游标不会读取数据,直到第一次调用需要知道查询是否返回某些记录,然后将所有数据读入缓存。
所以第一个moveToNext()
调用是一个很慢的调用。
您可能希望在后台主题中添加getCount()
调用。