Java 在SQLite中是在查询上还是在moveToNext上花费的时间?
在Android应用程序中,您使用该方法查询URI。因此,您会得到一个Java 在SQLite中是在查询上还是在moveToNext上花费的时间?,java,android,sqlite,user-interface,Java,Android,Sqlite,User Interface,在Android应用程序中,您使用该方法查询URI。因此,您会得到一个游标对象,然后重复执行以从数据库读取数据 是否可以在后台线程中执行query()(例如doInBackground的AsyncTask),但在GUI线程中调用moveToNext(例如onPostExecute)呢 也就是说,大部分时间都花在了query()上,所以moveToNext调用很快,或者相反,行为是懒惰的,实际的查询执行被推迟到请求数据时才执行?在Android中,SQLite游标直到第一次调用需要知道查询是否返回
游标
对象,然后重复执行以从数据库读取数据
是否可以在后台线程中执行query()
(例如doInBackground
的AsyncTask
),但在GUI线程中调用moveToNext
(例如onPostExecute
)呢
也就是说,大部分时间都花在了
query()
上,所以moveToNext
调用很快,或者相反,行为是懒惰的,实际的查询执行被推迟到请求数据时才执行?在Android中,SQLite游标直到第一次调用需要知道查询是否返回了一些记录时才读取数据,但随后将所有数据读取到缓存中
因此,第一个moveToNext()
调用速度较慢。
您可能需要在后台线程中添加一个
getCount()
调用。似乎是一些System.nanoTime()
调用可以很容易地解决这个问题。。。