Mobile/android2012. 8. 29. 13:49

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
Posted by NeverTry