본문 바로가기

Frontend/Android

[Android] AsyncTask 관련 글 (수정중)

참고>

AsyncTask : https://webnautes.tistory.com/1082


ProgressDialog : https://pnot.tistory.com/23



* 웹서비스 조회 시 progressDialog를 보여주기 위해 AsyncTask를 사용했다.

Error 메시지가 발생했을 때 작업을 멈추기 위해 return 과 함께 error 팝업을 보여줬는데

이때 앱이 죽는 현상이 생겨 AsyncTask를 다시 한번 공부했는데 참고한 블로그에서 좋은 내용을 얻었다.


* 앱의 모든 컴포넌트 (Activity, Service, Content Provider, BroadcastReceiver 등) 같은 Thread 내에서 실행 됌.


<동기(Sync), 비동기(Async)>

* 동기 : 학교 급식과 같이 순차적으로 일이 실행되므로 다른 일이 기다려야 함.

* 비동기 : 톨게이트 처럼 여러 여러 일을 처리하고 한 군데에서 관리를 함.


<AsyncTask 오류>


*  메모리 Leak

- 생성된 Activity가 먼저 destroy될 경우 Leak이 발생함. => Activity 사라지기 전에 AsyncTask cancel 해줘야 함. why? 메모리상에 없는 걸 참조하려고 하니까!!


- 회전 하는 순간 새로운 Activity 인스턴스가 생김. => 실행된 AsyncTask는 이전 Activity를 참조하려고 하니 메모리 Leak이 발생 함.