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

AsyncTask 중복실행 방지 질문!!

0 추천
안녕하세요, 안드로이드 초보 개발자입니다.

AsyncTask로 특정내용을 수행하고 있습니다. 근데 이게 여러가지 상황에 따라 중복으로 호출되는 경우가 있습니다.

첨에 cancel로 처리하려고 하였으나, 정상적으로 동작하지 않더군요 (검색해봐도 다른방법으로 하라고 나오고..)

그래서 boolean으로 동작중이다라는 내용을 만들어서 onPreExecute에서 true로 하고 onPostExecute에서 false로 하였습니다.

위의 boolean값을 체크하여 돌고있을경우(true), 실행하지 않도록 하였죠.

근데 이렇게해놔도 가끔 중복실행에 대한 오류가 뜨네요 ㅠ

AndroidRuntime: java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)

 

혹시 이에 대한 정확한 처리방법 아시는분 조언 부탁드립니다! ㅠ
블랙이요블랙 (12,860 포인트) 님이 2015년 4월 30일 질문

1개의 답변

+1 추천
 
채택된 답변
AsyncTask를 전역변수로 만들어서 execute하시는 건가요?

실행하려는 시점에 new로 생성해서 execute 하시면 위의 오류는 없어질 겁니다.

하나의 객체(AsyncTask)를 여러번 execute할수 없기 때문에 발생하는 오류입니다.,
Gradler (109,780 포인트) 님이 2015년 4월 30일 답변
블랙이요블랙님이 2015년 4월 30일 채택됨
답변 감사합니다. 덕분에 해결했습니다.
전역변수로 생성해놓고(싱글톤) 사용하려했었는데 여러번 execute하면 안되는거였군요 ㅠ
...