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

메인클래스, 어댑터클래스, 쓰레드클래스가 있을경우에 대한 콜백의 고충입니다.

0 추천
안녕하세요.

계속질문만 올리네요.

하루날잡으면 궁금한게 연쇄폭발해서...

조언 잘 부탁드립니다.

 

아래와 같은 리스트뷰를 구성하는 클래스가 있다고 가정할께요. 쓰레드클래스도 있습니다.

엑티비티클래스    어댑터클래스    쓰레드클래스

위의 클래스가 있다고 할때

액티비티클래스에서 쓰레드클래스를 호출하여

쓰레드클래스에서 이미지다운로드 작업을 완료하고 어댑터클래스의 getView메서드에서 작업결과를 받을수가 있나요?

전제는 액티비티클래스에서 쓰레드클래스 객체를 호출하였을경우입니다. (getView에서 호출한게 아닙니다.)

 

전에 getView에서 쓰레드클래스를 호출하여 작업결과를 받을때는

인터페이스를 하나 만들어서 getView에서 쓰레드객체 호출과 동시에 파라미터로 인터페이스 객체를 전달하여 CallBack형태의 listener로 결과값을 쓰레드로부터 받았었습니다만..

현재 고충은

액티비티에서 쓰레드객체를 호출하고 그 결과를 getView에서 받을수 있는가입니다.

왜냐면 해당되는 행의 getView가 호출될때 이미지를 세팅해야하거든요.

아...심오하네요..

조언부탁드립니다 꼭!
갸아악 (21,260 포인트) 님이 2014년 1월 9일 질문

2개의 답변

0 추천
 
채택된 답변
질문이 조금 이상하다고 생각 됩니다..

getView 자체가 사용자 눈에 보일때만 호출되기 때문에

getView에서 이미지 쓰레드로 이미지 로딩하시면 됩니다.
Gradler (109,780 포인트) 님이 2014년 1월 10일 답변
갸아악님이 2014년 1월 10일 채택됨
제가 지금 하려는건
스크롤이 멈추었을대만 이미지 쓰레드로 이미지를 로딩하고 싶습니다.
그런데 스크롤 정지 이벤트가 엑티비티단에서만 받을수가 있고,
받는 시점도 getView호출이 모두 끝난 시점에서 들어와서
스크롤이 정지상태일때 현재 보여지는 cell들에 대한 이미지로딩을 어찌해야될지 모르겠습니다.
그래서요ㅠㅠ
그건 이미지 로딩을 담당하는 쓰레드 클래스에서 제어해야 하는 부분입니다. 이미지 로딩 쓰레드에 플래그를 두어서 액티비티에서 받은 스크롤 이벤트를 이미지 로딩 쓰레드에 전달하면 되지요
0 추천

엑티비티클래스    어댑터클래스    쓰레드클래스
위의 클래스가 있다고 할때 액티비티클래스에서 쓰레드클래스를 호출하여 쓰레드클래스에서 이미지다운로드 작업을 완료하고 어댑터클래스의 getView메서드에서 작업결과를 받을수가 있나요?

 

전제는 액티비티클래스에서 쓰레드클래스 객체를 호출하였을경우입니다.

  • 원래 이렇게 해야 됩니다.

 

즉 Activity 에서 thread 혹은 AsyncTask 를 실행 시키고 (UI 부분이 엮여 있으면 AsyncTask 를 사용하시기를 바랍니다.) 이때 ProgressDialog 를 띄웁니다. Thread 가 종료 시점에 ProgreessDialog 를 닫고 Adapter 를 갱신 시키면 되는 것이죠

aucd29 (218,390 포인트) 님이 2014년 1월 10일 답변
...