아래는 코모스튜디오가 직접 만든 무료 앱이에요(한 번만 봐주세요 ^^)
UI 가 있는 곳에서 스레드 작업을 조금 길게 하면 화면에 버벅거리면서 아예 멈추는 경우도 발생한다. 하지만 스레드 대신 AsyncTask를 사용하면 이런 현상을 말끔히 해결해준다.
호출은
MainToXXXAsyncTask mainToXXXAsyncTask = new MainToXXXAsyncTask();
if(mainToXXXAsyncTask != null) {
mainToXXXAsyncTask.execute();
}
이렇게 하면 되나, 두 개이상의 태스크를 사용할 경우는 아래 처럼 호출해줘야 한다. 그렇지 않으면 모든 비동기 태스크(AsyncTask)가 동작하지 않는다. 즉, 첫 번째 비동기 태스크의 doInBackground코드가 작동하지 않으면서 뒤로 이어지는 태스크들이 먹통이 된다. 아래 코드는 첫 번째 태스크의 onPostExecute()에서 해주면 된다.
MainToXXXAsyncTask mainToXXXAsyncTask = new MainToXXXAsyncTask();
if(mainToXXXAsyncTask != null) {
mainToXXXAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
잡아놓고 쓰기 좋아하는 스레드는 최대한 쓰지 않도록 하자.
' [안드로이드 공부] > 동기화' 카테고리의 다른 글
비동기 작업은 아버지가 살아있을 때 해라! (0) | 2015.10.05 |
---|---|
당신은 반드시 아이의 부모를 먼저 제거 해야 합니다? (0) | 2015.10.05 |
백그라운드 리소스를 비 동기 태스크에서 사용하기 (0) | 2015.10.05 |
스레드 엄마의 심폐 소생술에... 로이드가 (0) | 2015.10.05 |
스레드, 타이머, 핸들러 그리고 루퍼 (0) | 2015.08.30 |
모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다. |
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요. |