AsyncTask 클래스, public abstract class AsyncTask, AsyncTask Generic 타입, AsyncTask 장점과 단점

CODEDRAGON Development/Android

반응형

 

 

AsyncTask 클래스

·       Thread의 경우 UI를 관리하는 MainTread외에 Background Thread에서 MainThread UI에 접근하려면 Handler를 사용 했습니다. (새로운 Thread 생성 후 Handler 객체를 통해 통신합니다.)

·       안드로이드에서는 쓰레드의 여러 가지 작업을 AsyncTask 객체 하나로 만들어 사용하기 쉽게 만들어 놓았습니다.

·       Thread를 좀더 쉽게 사용하기 위해 만들어놓은 클래스여서 Thread Handler의 기능들이 콜백 메서드로 모두 존재합니다.

·       비동기 AsyncTask클래스로 스레드를 생성하면 간편하게 스레드를 사용할 수 있습니다.

·       하나의 클래스에서 UI 작업을 쉽게 할 수 있게 해주는 클래스입니다.

·       AsyncTask 내부에는 자체 ThreadPool 이 있어 Thread 가 무한정 늘어나도 메모리에 부담을 주지 않도록 관리하고 있기 때문에 따로 ThreadPool 을 관리하지 않는다면 AsyncTask 를 사용하는 것도 좋은 방법입니다.

·       자바에서는 비동기 처리를 하기 위해 별도의 Thread 를 생성하여 public void run()  메소드를 재정의해서 구현하면 되지만 안드로이드에서는 직접 Thread 를 생성하기 보다는 AsyncTask 를 사용하도록 권장하고 있습니다.

 

 

 

public abstract class AsyncTask

http://developer.android.com/intl/ko/reference/android/os/AsyncTask.html

 


 

AsyncTask Generic 타입

android.os.AsyncTask<Params, Progress, Result>

 

인자

설명

Params

·       doInBackground() 파라미터 타입

·       execute() 메소드 인자 값이 됩니다.

Progress

·       doInBackground() 작업 시 진행 단위의 타입

·       onProgressUpdate 파라미터 타입입니다.

Result

·       doInBackground() 리턴값

·       onPostExecute() 파라미터 타입입니다.

 

 

반응형