android游标在无限循环中

时间:2012-08-05 03:59:13

标签: android android-asynctask android-cursor android-cursorloader

我有来自游标加载器的游标。问题是,如果我试图移动光标,它将不会向前移动并进入无限循环。

  public void onLoadFinished(Loader<Cursor> loader, final Cursor cursor) {
    Log.d(TAG, "CALLED onLoadFinished");
    ...
    else if(loader.getId() == LOADER_1)
    {
        while(cursor.moveToFirst())
        {
              Log.d(TAG, "LOOPING");
              cursor.moveToNext();
        }
    }
 }

1 个答案:

答案 0 :(得分:3)

您当前的while循环无效。现在,您将光标移动到while条件中的第一个位置,然后在while块内,您将光标推到下一个位置。当while块完成后,将再次测试条件,以便再次调用cursor.moveToFirst()。这将一次又一次地继续。基本上你将在无限循环中从光标的第一个位置移动到第二个位置。

循环应该是这样的:

while(cursor.moveToNext()) {
     Log.d(TAG, "LOOPING");
     // do other stuff 
     // each time you'll have a new row from the cursor
}