AsyncTask를 상속 받아서 구현한 ThumbnailTask를 이용해서
listView item 항목에 Thumbnail을 뿌려보았다.
하지만 빠른 스크롤시 bindView에서 item마다 ThumbnailTask를 생성한다면
자원 효율이 나쁠것으로 예상 했다.
그래서 Thread.sleep(200) 를 Thread를 생성해서 주고 현재
현재 Item항목이 화면에 나타나는지 확인한 후 ThumbnailTask를 생성하도록 하였다.
성능 향상이 되리라 생각된다.
new Thread(new Runnable() {
@Override
public void run() {
LOG.d(CLASSNAME, "Runnable run");
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
LOG.d(CLASSNAME, "Runnable run paste 0.2 seconds");
if(albumId!=holder.albumId){
LOG.d(CLASSNAME, "holder not exists screen");
return;
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
LOG.d(CLASSNAME, "runOnUiThread run");
new ThumbnailTask(albumId, holder,mBitmapCache,mErrorThumbnailBitmap).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, getActivity());
}
});
}}).start();
ThumbnailTask의 doInBackground 함수에 sleep(200)을 넣으려고 했으나
doInBackground에 sleep(200)을 넣을 경우 ThumbnailTask에 전달한 albumId값이 정상적으로
나타나지 않는 현상을 경험했다. 그래서 thumbnail이미지가 표시되지 않았다.
'PROGRAMING > Android' 카테고리의 다른 글
listView에서 checkbox 넣을 경우. 뷰 재사용 때문에 발생되는 문제 수정. (0) | 2013.02.24 |
---|---|
listView 항목에 Audio Albumart(thumbnail)을 지연 없이 나타내기 LinkedHashMap과 SoftReference사용 [캐시 처리] (1) | 2013.02.24 |
listView 항목에 Audio Albumart(thumbnail)을 지연 없이 나타내기.AsyncTask (1) | 2013.02.22 |
Audio AlbumArt 가져오기. (0) | 2013.02.22 |
android.content.CursorLoader 와 LoaderCallbacks 인터페이스 (0) | 2013.02.22 |