안드로이드에서 네트워킹(API에서 데이터 받아오기, 사진 받아오기 등)을 하려면
Thread와 Handler를 이용하여 처리해야 하는데,
안드로이드는 메인 스레드(UI 스레드 라고도 함) 에서만 UI 작업을 처리할 수 있기 때문에
runOnUiThread 메소드를 통하여 UI 처리 작업을 따로 작성해야 한다.
-> AsyncTask는 이를 간편하게 처리하도록 도와줌
생성자
AsyncTask< , , >
첫 번째 인자 값 : doInBackground 메소드에 전달할 값, 가변적임(변수 여러 개를 전달 가능)
두 번째 인자 값 : onProgressUpdate 메소드에 전달할 값
세 번째 인자 값 : doInBackground의 반환 값
메소드 오버라이딩
onPreExecute() : 백드라운드 작업 전의 사전 작업, 실행 전 UI 변경
doInBackground() : 백그라운드 작업, execute(인자 값들) 실행 시
인자 값을 전달 받고 실행
onProgressUpdate() : 백그라운드 작업 중에 UI변경
onPostExecute() : 백그라운드 실행 후에 UI 변경
★ ★ ★ ★ ★
서브 클래스하여 사용(추상 메소드 오버라이딩 필요)
비교적 오래 걸리지 않은 작업에 유용
재사용이 불가능하다
excute() 한 액티비티가 종료되었을 때 별도의 지시가 없다면 AsyncTask가 계속 돌아간다.
728x90
'# App > Android(JAVA)' 카테고리의 다른 글
[안드로이드 스튜디오] TextView 자바에서 꾸미기 (0) | 2018.09.26 |
---|---|
[안드로이드 스튜디오] EditText 자동 포커싱 막기 (0) | 2018.09.22 |
안드로이드 AVD 실행 오류 (0) | 2018.09.21 |
[안드로이드 스튜디오] RecyclerView 위로 스크롤하기 (0) | 2018.09.08 |
[안드로이드 스튜디오] ScrollView 최상단으로 스크롤하기 (0) | 2018.09.08 |
[안드로이드 스튜디오] RecyclerView 스크롤 부드럽게 하기 (0) | 2018.09.08 |
[안드로이드 스튜디오] 스크롤뷰 밑에 버튼 고정하기 (0) | 2018.09.08 |