[안드로이드] 네트워크-Async

Async는 deprecated되서 지금은 사용하지 않지만, 일단 정리해두겠음.
코루틴을 따로 공부해 또 정리 하겠음.

비동기  - Async
동기 - Sync

동기 - 작업을 순서대로 진행한다
a->b->c
윗줄부터 아래줄로 실행

비동기 - 쓰레드를 만들어서 작업을 따로 처리한다

결과를 받음
--------------------------------------------->

                ----------^
                    작업

안드로이드 async 다루는 방법

AsyncTask를 상속받는다

-onPreExcute : 쓰레드 출발하기 전에 할 작업
-doInBackground : 쓰레드가 할 작업
-onProgressUpdate : 작업하는 중간중간에 메인쓰레드에게 작업현황을 알려줌
-onPostExcute : 작업을 마치고 메인쓰레드로 돌아옴

Async 장점

  1. 메인쓰레드를 기다리게 할 필요 없음
  2. 네트워크 작업 할 때 유용함

Async 단점

재사용 불가 // 지금도 클릭 할 때마다 만들어지도록 구현되어있음
구현된 액티비티가 종료 될 경우 따라서 종료되지 않는다 // 액티비티를 벗어 날 때 async 정지를 구현 시켜야함
async task는 하나만 실행될 수 있다. // 첫번째 async 작업이 끝 날 때 까지 두번째 async 작업은 대기한다. 병렬처리가 안된다. 동시에 실행할 수 x

좋은 웹페이지 즐겨찾기