[안드로이드 공부]/동기화

AsyncTask를 전역으로 쓰면?

코코모아 2015. 10. 10. 11:31

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

안드로이드 AsyncTask를 전역으로 쓴다면? 즉, 재활용 하겠다는 의미인데 가능 할까?  불가능하다! 만약 한 번 쓴 비동기 태스크를 재 활용 하려고 하면 아래문구를 보게 될 것이다.


java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)


즉, 변수 이름은 재활용이 가능 하지만 다시 쓰려면 새로 할당을 받으라는 것이다. 당연한 것 아니겠나? 얼음 얼리는 통을 사서 물을 채우고 얼음을 얼려서 먹었는데, 다음 번에 얼음을 먹으려면 당연히 물을 다시 부어서 넣고 기다려야 먹을 수 있지 않겠는가? 그 당시 얼음 통과 얼음은 그 당시의 내 위장 속으로 들어가는데 사용 되었으니, 지금의 나는 지금의 내 위장 속으로 들어가는데 사용하기 위한 얼음통을 가져와서 다시 물을 채워야 한다는 거다.

즉, Async에게는 과거는 공유 할 수 없다는 것! 자신만의 시간과 공간의 영역이 있다는 것이 핵심이 아닐까라고 오늘도  초보 개발자는 머리를 끄적여 본다.


모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.