cursor.getCount()明明有数据,但是moveToNext失败,总在第一条,不能正常移动到下一条,导致这个while死循环。
if (cursor.moveToFirst()) { do { Integer position = Integer.valueOf(cursor.getPosition()); if (mFileNameList.containsKey(position)){ continue; } FileInfo fileInfo = getFileInfo(cursor); if (fileInfo != null) { mFileNameList.put(position, fileInfo); } } while (cursor.moveToNext()); }原因是我在查询到结果返回cursor时,对这个cursor进行了处理,而就在这个处理的过程中异常了,而且被catch住了,所以导致现象异常。
try { if(mLocalCursor != null && mLocalCursor.getCount() > 0 && isTypeAndMusic) { int i = 0; int column = cursor.getColumnIndexOrThrow(columnName); String displayName = null; String[] tempArray = null; int index= 0; for(mLocalCursor.moveToFirst();!mLocalCursor.isAfterLast();mLocalCursor.moveToNext(),i++){ SortEntry sortKey = new SortEntry(); displayName = cursor.getString(column); if (displayName != null) { tempArray = displayName.split("\\."); index = tempArray.length; displayName = tempArray[index - 1]; } sortKey.key = displayName; sortKey.order = i; sortList.add(sortKey); } } } catch (Exception e) { Log.e(TAG, "SortCursor2: exception = " + e); } //Sort Collections.sort(sortList,comparator);
本文探讨了一个关于Cursor在遍历过程中无法正常移动到下一条记录的问题,并详细解释了问题产生的原因及解决方案。涉及到对Cursor的异常处理及数据排序过程。
1万+

被折叠的 条评论
为什么被折叠?



