为什么要在`moveToNext()`调用时避免使用`Cursor.getCount()`?

时间:2019-02-03 00:07:23

标签: android performance android-cursor

传统观点认为,避免调用Cursor.getCount()是因为这是一项昂贵的操作。 深入研究AbstractCursor source code之后,似乎所有标准操作,包括moveToNextmoveToFirstmoveToPosition都在内部调用getCount

那么完全避免自己调用它有什么意义呢?

编辑:添加了指向Android文档的超链接

编辑:也许我可以纠正? 我的印象是,Cursor可以在大型数据集上提供移动的窗口,只有在窗口仔细浏览了整个数据集一次之后,才能知道其全长。因此,调用getCount会导致完全加载/迭代,而moveToNext仅在必要时才推进窗口。

0 个答案:

没有答案