2012-07-02 6 views
0

내 응용 프로그램에서 검색, 구문 분석 및 기타 용도로 많은 AsyncTask를 사용하고 있습니다. 전후에 UI를 업데이트해야하기 때문에 AsyncTask를 사용합니다.AsyncTask working does android

문제는 이전 스레드가 제대로 죽지 않고 스레드가 작동을 멈추는 동안 새로운 스레드를 사용하는 것이 문제입니다.

이 문제를 어떻게 피할 수 있습니까?

+0

스레드의 사용은 정말 앞으로 stright입니다. 내가 마법 anyting 마 :) 어딘가에 거기에 응용 프로그램에 대한 스레드 제한이 무엇입니까? 또한 디버깅 모드에서 스레드가 부자가되고 "죽을"수 있습니다. – gilush14

답변

1

순차 과정을 따르면 더 좋은 방법 일 수 있습니까? 이 같은 것

첫 번째 onPostExecute()에서 두 번째 asynctask를 시작합니다. 마찬가지로 onPostexecute에서 3 번째 asynctask를 시작합니다. 그런 식으로, 당신은 더 많은 제어권을 가지며, 메모리는 더 적은 메모리를 가진 장치에서도 잘 관리됩니다.

감사합니다.

+0

스레드가 서로 다른 활동에서 발생할 수 있으며 항상 서로 관련이 없습니다. 예 : 1) 파일 분석 2) ui 업데이트. 이 스레드를 10 번 수행하면 작동이 멈 춥니 다. – gilush14

1

신호를 사용할 수 있다고 생각합니다. 나는 CountDownLatch을 사용하여 하나의 스레드에서 래치를 초기화하고 작업을 완료하려고하면 카운트 다운합니다. 다른 스레드 호출 await()은 이전 스레드가 countDown()을 호출하지 않을 때까지 차단됩니다.

+0

좋은 방법 같지만 스레드가 죽었는지 확인하고 있습니까? – gilush14