在Android中从光标获取数据的最快方法

时间:2013-08-27 15:36:59

标签: android cursor

我有一个查询&它只会返回一个项目。我可以得到像这样的结果

cursorOne.moveToFirst();
    do 
    {
        getID = cursorOne.getString(cursorOne.getColumnIndexOrThrow("_id"));
    }while (cursorOne.moveToNext());

我想知道有没有最快的方法来获取数据,或者这是唯一的方法。

2 个答案:

答案 0 :(得分:0)

查询时使用投影,因此您只返回所需的列

String[] projection = new String[] { "_id" }; //specify columns you want to return
Cursor cursorOne = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);

在获得结果时,如果只返回一行,则不需要执行do / while。

try {
  if (cursorOne.moveToFirst()) { 
     getID = cursorOne.getString(0); //no need to look up column index since you already know it due to the projection used
  }
} finally {
  cursorOne.close();
}

答案 1 :(得分:0)

如果您只需要单行中的单个列值,请考虑使用SQLiteStatement而不是游标。 SQLiteStatement支持simpleQueryForLong()simpleQueryForString(),每个都返回一个值。