2016-07-21 1 views
-3

내부 스레드가 doInBackground에서 진행 중이고 응답이 돌아 오는 데 더 많은 시간이 걸리는 것과 같은 비동기 작업을 호출하는 경우 이전 스레드를 죽이는 방법 doInBckground에서 새로운 하나를 실행하십시오? 누군가 나를 도울 수 있습니까? 사전에 감사드립니다.doInBackground가 호출되지 않습니다.

+0

'내부 스레드가 doInBackground에서 진행 중'?? doInBackgroud의 내부 스레드? 거기에 스레드를 사용해서는 안됩니다. – greenapps

+0

시도한 코드를 추가하십시오. –

+0

'doInBackground가 호출되지 않습니다. ' 이 문제에 대해서는 귀하의 게시물에 아무것도 없습니다. – greenapps

답변

1

Google에 따르면 동일한 asynctask 개체를 두 번 호출 할 수 없습니다. 그렇게하면 (자), 예외가 슬로우됩니다.

작업

은 (두 번째 실행을 시도하면 예외가 발생합니다.) 자세한 내용은

이 문서 here를 참조 번만 실행할 수 있습니다. '스레딩 규칙'장을 읽으십시오.

@ greenapps에서 말한 것처럼 doInBackground 안에는 어떤 스레드도 사용하지 마십시오. doInBackground 자체가 스레드에서 실행 중입니다.

현재 실행중인 이전 asynctask를 취소하려면 cancel(true) asynctask 객체의 메소드를 호출하십시오. 작업을 다시 실행 한 다음 해당 개체를 다시 초기화하고 다시 실행하십시오.

관련 문제