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

AsyncTask 사용 후 DDMS Thread Monitor에서 사라지지 않아요...

0 추천
그동안 네트웍통신 하는데(xml 주고받기) Asynctask 잘 사용하고있었습니다.

다른작업때문에 DDMS의 ThreadMonitor를 좀 보고 있는데요 AsyncTask가 계속 쌓이는군요..

(남아있지 확인은  Asynctask에 고유이름을 줘서 확인 한거에요)

doInBackground에서 네트웍 작업 후 onPostExecute에서 xml받아서 파싱 후 UI처리를 해주는게 전부입니다.

(저 안에서 다른짓을 하질 않아요..)

정상적으로 onPostExecute를 마첬는데도.. ThreadMonitor에  Wait 상태로 남아있습니다.

 

작업 후에 뭔가 호출을 해줘야 하는건가요? 아니면 뭔가 제대로 이해하지 못하고 사용하고 있는걸가요...

 

아시는 분 답변좀 부탁합니다.
ezmo01 (1,510 포인트) 님이 2013년 5월 16일 질문

2개의 답변

0 추천
저도 이것 때문에 골치가 아팠는데...

activity를 종료 했는데도 AsyncTask가 살아 있어서

찾아보니깐 AsyncTask는 thread pool에서 관리되서 우리가 관리를 할수 없더라구요.

결국에 thread 로 다시 바꿔서 하고 있어요...

인터넷에 보니깐 AsyncTask 관련해서 뭔가 있긴 한데 영어로 되어 있어서...

http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-android-betteractivity-betterservice-and-betterasynctask/

참고하세요~
Qoov (210 포인트) 님이 2013년 6월 4일 답변
0 추천

그런가요... 저도 서버통신으로 ayTask를 사용 하고 있는데요.

전 5섯개 가 항상 웨이트 상태로 있고 그 이상 안늘던데.... 저도DDMS에서 확인해보았습니다.

스레드가 10개 20개 늘어나는게 보이나요??

일이 끝나면 자동으로 캔슬을 부르는 걸로 알고 있습니다. 아니면 ayTask.cancel(true);

그렇다고 캔슬이 보장되는것도 아니랍니다. 

저 같은경우는 갱신할때 마다 new 스레드 하기때문에 엄청나게 스레드를 쓰는데여...

아직 까지 보고된 스레드 오류는 아직 없네요.

벌써 보셨겠지만 http://tigerwoods.tistory.com/28 

  (11,920 포인트) 님이 2013년 6월 4일 답변
...