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

안드로이드 고수님들 AsnyncTask 대해 질문있습니다.

0 추천
AsnyncTask가 실행중인데 정지 or 종료를 시키고싶은데 cancel(true), isCancelled()를해도 멈춰지지가않느데 어떻게 해야 멈출수있나요??ㅠ
안드드드드드 (850 포인트) 님이 2018년 11월 16일 질문

2개의 답변

0 추천
1. 기본적으로 어떠한 동작을 하고 있는 상태에서 강제로 종료 되지 않습니다.

2. 그렇기 때문에 flag 를 두고 값을 체크해가며 처리하는 형태로해야 됩니다.

 

예)

mFlag = false

 

fun doInBackground(...) {

while (true) {

if (mFlag) {

return  false

}

// TODO

}

 

return true

}

// 호출부

v.setOnClickEventListener { asyntaskObj.mFlag = true }
aucd29 (218,390 포인트) 님이 2018년 11월 19일 답변
0 추천
이게 cancel(true)가 보통은 종료를 시킬겁니다. 그리고.. onCancelled 메서드를 호출하게 됩니다. API를 읽어보시면 아시겠지만 onPostExecute를 호출하지 않습니다. 이 메서드는 Thread은 interrupt를 호출하는 거라서 100% 장담할 수는 없지만 바로 종료될 겁니다. 다시 확인해 보심이 좋을 듯 합니다.
mcsong (44,040 포인트) 님이 2018년 11월 20일 답변
...