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() 파라미터 타입입니다. |
'Development > Android' 카테고리의 다른 글
옵션 메뉴 추가방법, 컨텍스트 메뉴 추가방법 (0) | 2018.01.04 |
---|---|
AsyncTask 호출 도식도, AsnycTask 클래스의 주요 메소드 (0) | 2018.01.03 |
ProgressDialog (0) | 2018.01.03 |
ProgressBar 주요 메소드, ProgressBar XML 속성 (0) | 2018.01.03 |
ProgressBar, ProgressBar 종류 (0) | 2018.01.03 |