안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
AsyncTask 를 완전히 종료하고 싶어서 이런저런 테스트 도중 의문점이 생겼습니다.
태스크를 execute - cancel - execute 식으로 재실행 시켯을 때 보니까
태스크가 2개가 돌아가고 있더라구요.
그래서 bool 변수로 cancel 되면 반복문이 돌지 않도록 해 보니
기존 태스크가 돌아가지 않는걸 확인 했습니다.
하지만 이건 반복문이 돌지 않을 뿐 태스크는 살아있는게 아닌지요?
이것을 처리할 수 있는 방법이 있는지 궁금합니다.
혹시나 이런 태스크들이 쌓여서 문제가 생길까 싶어서요.
만들고 있는 것이 버튼을 누를때마다 태스크가 실행이 되어야 하다보니...
고수님들의 한마디 부탁드립니다 ㅠㅠ
2012.02.13 11:15:33
backgound thread를 강제로 종료하긴 쉽지 않습니다. cancel()을 이용해도 종료가 보장이 되는 건 아닙니다.
isCancelled()를 이용해 doInBackground가 리턴이 되게끔 하면, GC에 의해 알아서 없어집니다.




리스트 아답터에서 이미지 로딩할려고 10개씩 처리해도 별 문제 없었는데... 이벤트 한번 클릭한다고 문제 있을까여?;