想知道调用 cursor.moveToPosition(i);
会触发持久存储操作,还是只是从内存缓存中读取?
在 Android 的 RecycleView Adapter
中,这个调用非常频繁,我不想让系统过载访问持久存储。这种风险是否存在?
Cursor cursor = MainActivity.db.rawQuery("Select _id From UserSetting", null);
操作是否会产生缓存结果?
@Override
public void onBindViewHolder(ItemHolder itemHolder, int i) {
cursor.moveToPosition(i);
int i2 = cursor.getColumnIndexOrThrow("_id");
final String _id = cursor.getString(i2);
itemHolder.itemRecordName = _id;
int i3 = cursor.getColumnIndexOrThrow("text");
final String text = cursor.getString(i3);
int i4 = cursor.getColumnIndexOrThrow("userSettingRecordName");
final String userSettingRecordName = cursor.getString(i4);
最佳答案
光标有一个内存窗口。但如果跳远,您的代码将触发 io 操作。 找详情CursorWindow
关于android - cursor.moveToPosition(i) 有多快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39347339/