마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

getView 무한호출 현상..핸들러와 관련이 있나요?

0 추천

안녕하세요.

미궁에 빠져버렸네요.

아래 소스의 일부입니다.

       ThumNailLoadManager thumNailManager = ThumNailLoadManager.getThumNailLoadManager();
            thumNailManager.loadThumNailImage(url, fileInfo.m_name, new ThumNailLoadingListener() {
             filelist.thum.ThumNailLoadingListener#onThumNailBitmapProcessingCompleted(java.lang.String,                                  android.graphics.Bitmap)
            */
            @Override
            public void onThumNailBitmapProcessingCompleted(
            String fileName, final Bitmap thum) {
            // TODO Auto-generated method stub
            Log.i("다운로드 완료", fileName);
// TODO Auto-generated method stub
         //문제의 부분..아래 두줄..
          vh.mIcon.setImageBitmap(thum);
           notifyDataSetChanged();
            }
            });
 
위의 코드를 보시면 썸네일로드매니저를 생성해서
로드썸네일이미지메서드로 파라미터를 넘깁니다.
그리고 그다음 내부적으로 쓰레드처리가 이루어집니다.
동영상 파일을 다운을 받습니다.용량이 아주 작아여..
다운받은후 한프레임만 컷해서 리스너를 통해서 위의 코드에 오버라이드되어 있는곳으로
완성된 이미지파일이 넘어오는데요.
저는 이것을 현재 리스트뷰의 row번째 이미지뷰에 세팅하려고 위와 같이 코드를 작성하였습니다.
그리고 세팅후 리스트뷰를 재갱신처리 해야해서..갱신처리 하였는데요.
아..위의 처리가 UI단에서 하는 처리인데 위의 영역자체가 쓰레드에 물려 있어서
handler.post로 감싸줘봤는데요.
무한히 getView가 호출되더군요 위에 두줄 감쌋을뿐인데..
아...난감하네요.
원인도 궁금하고 해결책도 궁금합니다.
조언 부탁드립니다.
갸아악 (21,260 포인트) 님이 2014년 1월 7일 질문

2개의 답변

0 추천
 
채택된 답변
handler.post 빼고
 
notifiydatasetchanged() 이거 빼면
 
되지 않을까요
커피한조각 (520 포인트) 님이 2014년 1월 8일 답변
갸아악님이 2014년 1월 10일 채택됨
0 추천

원래 notifyDataSetChanged 하면 getView다시호출하는데여 그럼 무한반복되는게 정상아닌가여

건방진프로그래머 (26,630 포인트) 님이 2014년 1월 7일 답변
...