1

커서 로더에서 오는 커서가 있습니다. 문제는 그 커서를 통해 이동하려고하면 앞으로 이동하지 않고 끝없는 루프에 넣을 것입니다.무한 루프 안드로이드 커서

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(); 
     } 
    } 
} 
+2

가 쿼리를 확인합니다. – JoxTraex

+0

좋은 생각이 나를 보자 – MobDev

+0

커서의 모든 용도를 제거하고 일반 루프를 그대로 두었지만 여전히 붙어있다. – MobDev

답변

2

현재 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 
} 
+0

도움을 주셔서 감사합니다. 그걸 해결해주세요. – MobDev

+1

이것은 어떻게 했나요? while ((currentLine! = null) | | (lineFirstIteration))'오랜 시간 동안 작동했지만 코드가 무한 루프로 바뀌면 올바른 방법으로 변환되어 완벽하게 작동했습니다. – FalconBot