2011-06-16 30 views
0
public long getDoneLength(int mixId, long startPos) { 
    SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
    long doneLength = 0; 
    Cursor cursor = db.rawQuery("select doneLength from fragment where mixId=? and startPos=?", new String[]{String.valueOf(mixId), String.valueOf(startPos)}); 
    while (cursor.moveToFirst()) { 
     doneLength = cursor.getLong(0); 
    } 
    cursor.close(); 
    return doneLength; 
} 
+1

這種方法應該做什麼? – Noel 2011-06-16 02:14:56

+1

錯誤?它不會返回正確的值嗎?我也很肯定你想在調用moveToFirst()之前檢查遊標是否爲空或者它的count是0。 – Maximus 2011-06-16 02:16:07

+0

發佈一個堆棧跟蹤或者說明當你說它不起作用時會發生什麼。 – Pedantic 2011-06-16 03:06:56

回答

1

這看起來像一個無限循環。你應該做if (cursor.moveToNext()) {...},而不是while

0

cursor.moveToFirst應該只調用一次。如果你想知道,如果光標是空的使用

cursor.isAfterLast() 

問候, 斯特凡

相關問題