마스터Q&A
접속유지
가입하기
안드로이드 Q&A
최근 질문
미답변 질문
태그
사용자
질문하기
마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다.
안드로이드펍
에서 운영하고 있습니다. [
사용법
,
운영진
]
인기있는 태그
초보어플개발
(3427)
안드로이드스튜디오
(2664)
안드로이드-초보어플개발
(1333)
안드로이드-스튜디오
(1086)
도와주세요-
(995)
이미지
(970)
listview
(866)
리스트뷰
(844)
오류
(805)
레이아웃
(693)
fragment
(675)
webview
(670)
AsyncTask 파일 다운로드 취소할 수 있나요 ?
0
추천
AsyncTask로 파일을 받는 도중, 취소버튼을 누르면
다운로드를 중지하고싶은데
어떻게 해야하나요 ?
다운로드는 Http방식으로 받고있습니다.
안드로이드
다운로드
음무
(
17,820
포인트)
님이
2014년 4월 21일
질문
Please
log in
or
register
to add a comment.
답변 달기
·
글에 소스 코드 보기 좋게 넣는 법
·
질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
답변이 채택되거나 답변에 댓글이 달리면 이메일로 알려드립니다:
답변이 채택되거나 댓글이 달리면 이메일로 알려드립니다
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면
로그인
하거나 혹은
가입
하세요.
2개의 답변
+2
추천
채택된 답변
직접 flag를 만들어 체크하는 것은 좋지 않은 방법입니다. (쓰레드간의 동기화를 직접 처리해야 함)
올바른 방법은 AsyncTask.cancel 을 호출하여 종료요청을 하고,
doInBackground 에서 isCancelled 로 종료해야 하는지를 검사하는 것입니다.
익명사용자
님이
2014년 4월 22일
답변
음무
님이
2014년 4월 22일
채택됨
AsyncTask.calse을 호출하면 doInBackground 작업이 멈추나요?
isCancelled는 뭔가요 ? 조금만 보충설명 부탁드리겠습니다.
쓰레드를 종료하는 방법에 대해 아신다면 AsyncTask의 종료 방법도 크게 다르지 않은데요.
쓰레드의 경우 안전하게 종료하는 방법으로
해당 쓰레드.interrupt() 를 호출하고
쓰레드에서는 while(조건 && Thread.currentThread().isInterrupted()) 식으로 하고 try - catch로 InterruptedException이 발생했을 경우의 처리와 함께 종료합니다.
이 내용으로 생각해보면 cancel을 호출하고 반복문에서 isCancelled를 확인하라는 내용입니다.
http://developer.android.com/reference/android/os/AsyncTask.html
의 Cancelling Task 섹션을 참고하세요
깔금히 이해됐습니다 감사합니다
Please
log in
or
register
to add a comment.
+1
추천
다운로드면 아래와 같은 형태로 루프 돌면서 read 할 것 같은데, flag를 둬서 버튼이 눌려졌을 때 flag를 true로 세팅하고
doInbackground를 종료 하도록 하시면 될 것 같아요.
while( (read = in.read(buf) > 0 ) {
....
}
And
(
1,760
포인트)
님이
2014년 4월 22일
답변
Please
log in
or
register
to add a comment.
...