AsyncTask는 Thread를 쓰다가 보면 코드를 읽기가 힘들다는 단점을 보완해준다.
Object를 상속받은 클래스로 abstract class로써 직접 생성해서 사용할 수 없다.
android.os.AsyncTask<Params, Progress, Result>
Params - 실행될때 task에 전달된 파라메터의 type
Progress - 백그라운드에서 작업하는 동안 발생되는 type
Result - 백그라운드 작업에서 처리된 결과의 type
AsyncTask를 실행시 4가지 순서의 실행
onPreExecute()
UI Thread에서 즉시 호출되는 메소드 . 보통 작업을 설정하는데 사용
doInBackground(Params)
onPreExecute() 수행이 끝난 후 백그라우드로 호출
긴 수행시간을 요하는 작업을 백그라운드로 실행 AsyncTask의 파라메터 값은 여기서 전달
수행결과는 이 단계에서 반환되어야 하며 마지막 단계로 전달해야 한다.
이 단계에서 publishProgress()를 사용할 수 있다.
onProgressUpdate()단계로 인해 UI Thread단계로 불려지게 된다.
onProgressUpdates(Progress)
publishProgress()를 호출한 후 UI Thread에서 불려지는 함수.
백그라운드에서 계속 작업이 수행되는 동안 UI progress의 형태를 보여주기 위한 메소드
onPostExecute(Result)
백그라운드의 작업이 종료된 후에 UI Thread에 호출되는 함수이다.
백그라운드 결과가 이 단계의 파라미터로 전달된다.
실행 순서 코드
결과
'Mobile > android' 카테고리의 다른 글
내 전화번호 보기 (0) | 2012.09.16 |
---|---|
My Application (0) | 2012.09.13 |
setFlags (0) | 2012.08.30 |
Context (0) | 2012.08.30 |
Android Api 주소 (0) | 2012.08.29 |