没有moveToFirst的Cursor.moveToNext

ala*_*rev 5 java sqlite android

下一个代码是否会按预期工作?

Cursor c = db.query(tableName, requestedColumns, condition,
        conditionParams, null, null, sortOrder);
while(c.moveToNext())   {
     //do stuff with rows
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我发现的例子建议调用c.moveToFirst()先前的循环,但这是否真的有必要?

Tom*_*Mor 9

是的,它会工作,moveToNext实际上是打电话moveToFirst

  • 是moveToNext调用moveToPosition(mPos + 1)和moveToFirst调用moveToPosition(0).所以,如果你是开始-1,那么他们的行为是一样的. (3认同)