# App/Android(JAVA)

[안드로이드 스튜디오] AsyncTask<> 사용하기, 간단한 설명

안드로이드에서 네트워킹(API에서 데이터 받아오기, 사진 받아오기 등)을 하려면 


Thread와 Handler를 이용하여 처리해야 하는데, 


안드로이드는 메인 스레드(UI 스레드 라고도 함) 에서만 UI 작업을 처리할 수 있기 때문에


runOnUiThread 메소드를 통하여 UI 처리 작업을 따로 작성해야 한다.





-> AsyncTask는 이를 간편하게 처리하도록 도와줌






생성자


AsyncTask< ,  , >


첫 번째 인자 값 : doInBackground 메소드에 전달할 값, 가변적임(변수 여러 개를 전달 가능)


두 번째 인자 값 : onProgressUpdate 메소드에 전달할 값


세 번째 인자 값 : doInBackground의 반환 값





메소드 오버라이딩


onPreExecute() : 백드라운드 작업 전의 사전 작업, 실행 전 UI 변경


doInBackground() : 백그라운드 작업, execute(인자 값들) 실행 시


인자 값을 전달 받고 실행 


onProgressUpdate() : 백그라운드 작업 중에 UI변경


onPostExecute() : 백그라운드 실행 후에 UI 변경




★ ★ ★ ★ ★


서브 클래스하여 사용(추상 메소드 오버라이딩 필요)


비교적 오래 걸리지 않은 작업에 유용


재사용이 불가능하다


excute() 한 액티비티가 종료되었을 때 별도의 지시가 없다면 AsyncTask가 계속 돌아간다.



728x90