1. API16(젤리빈) 미만 버전에서는 AsyncTask 선언을 UI Thread에서 해주지 않으면 오류가 발생한다.
해결방법 : Activity나 Application 등 UI스레드 아래와 같이 AsyncTask를 한번 호출합니다.
Class.forName("android.os.AsyncTask");
2. API 16 이상(JELLY BEAN)의 버전에서는 자유롭게 사용해도 된다.
3. excutes(Params)는 UI 스레드에서 직접호출해야합니다
4. Task는 오직 한번만 실행될 수 있습니다.
5. 구현한 액티비티 종료 시 별도의 지시가 없다면 종료되지 않습니다.
6. 하나의 객체이므로 재사용이 불가능합니다. (객체를 새롭게 생성하면 되지만 메모리 효율 나빠짐)
7. AsyncTask 는 순차적으로 하나의 스레드에서 실행되었으나, 도넛의 시작과 함께 병렬 처리 가능한
스레드 풀로 바뀌었다. 허니콤의 시작과 함께 병렬 처리의 에러를 피하기 위해 다시 싱글 스레드로
실행되게 되었다. 만약 당신이 병렬 처리를 원한다면
myTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 처럼 사용할 수 있다.
'안드로이드 > AsyncTask' 카테고리의 다른 글
AsyncTask(2) (0) | 2017.04.05 |
---|