读取Android Cursor是否一直到数据库?

读取Android Cursor是否一直到数据库?,第1张

概述我有一个沉重的Android应用程序,并希望确保永远不会ANR它.我已经将我的数据库查询从UI线程(到AsyncTasks)移开了,但是我仍然从ui线程中的光标读取,因为我认为返回的光标存储在内存中的某个位置,即它的实际读取不会整个数据库的方式.这是正确的还是我真的需要将所有光标读取移动到

我有一个沉重的Android应用程序,并希望确保永远不会ANR它.

我已经将我的数据库查询从UI线程(到AsyncTasks)移开了,但是我仍然从ui线程中的光标读取,因为我认为返回的光标存储在内存中的某个位置,即它的实际读取不会整个数据库的方式.这是正确的还是我真的需要将所有光标读取移动到非UI线程?

更具体:

例如http://developer.android.com/reference/android/database/Cursor.html#getInt(int)是从memeory读取的,还是从实际的sqlite数据库中获取某种读锁定.

我想我的案例中的Cursor实现是一个sqliteCursor,因为ContentProvIDer是使用sqlite数据库实现的.

解决方法:

当您在sqliteDatabase上调用query()或rawquery()时,会立即返回Cursor,因为实际查询本身会延迟,直到您开始使用数据.任何 *** 纵Cursor或需要暗示执行查询的数据的调用(例如,getCount())都将实际执行查询.因此,当您在后台线程上时,最好在doInBackground()中“触摸”Cursor.

但是,从那时起,整个结果集在内存中,结果集低于1MB.

总结

以上是内存溢出为你收集整理的读取Android Cursor是否一直到数据库?全部内容,希望文章能够帮你解决读取Android Cursor是否一直到数据库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存