android 의 AsyncTask
3441 단어 AsyncTask
1)AsyncTask 실현 의 원리 와 적용 의 장단 점
AsyncTask 는 안 드 로 이 드 가 제공 하 는 경량급 비동기 류 로 AsyncTask 를 직접 계승 하여 클래스 에서 비동기 작업 을 실현 하고 인터페이스 가 현재 비동기 실행 정 도 를 피드백 합 니 다(인 터 페 이 스 를 통 해 UI 진도 업 데 이 트 를 실현 할 수 있 습 니 다).마지막 으로 실 행 된 결 과 를 UI 메 인 스 레 드 에 피드백 합 니 다.
사용 한 장점:
l 간단 하 다
l 프로 세 스 제어 가능
사용 한 단점:
l 여러 개의 비동기 조작 과 Ui 변경 이 필요 할 때 복잡 해진 다.
2)Handler 비동기 실현 의 원리 와 적용 의 장단 점
Handler 비동기 가 실 현 될 때 Handler,Looper,Message,Thread 네 개의 대상 과 관련 되 고 비동기 화 를 실현 하 는 절 차 는 주 스 레 드 가 Thread(하위 스 레 드)à thread(하위 스 레 드)를 실행 하고 Message-à Looper 를 생 성하 여 Message 를 가 져 와 Handler à Handler 에 게 Looper 중의 Message 를 하나씩 가 져 와 UI 변경 을 하 는 것 입 니 다.
사용 한 장점:
l 구조 가 뚜렷 하고 기능 정의 가 명확 하 다.
l 여러 백 스테이지 임무 에 대해 간단 하고 뚜렷 하 다.
사용 한 단점:
l 단일 배경 비동기 처리 시 코드 가 너무 많 고 구조 가 너무 복잡 해 보인다(상대 성)
AsyncTask 소개
Android 의 AsyncTask 는 Handler 보다 경량급 으로 간단 한 비동기 처리 에 적 용 됩 니 다.
먼저 안 드 로 이 드 가 Handler 와 AsyncTask 가 있 는 이 유 는 모두 메 인 스 레 드(UI 스 레 드)를 막 지 않 기 위해 서 이 며,UI 의 업 데 이 트 는 메 인 스 레 드 에서 만 이 루어 질 수 있 기 때문에 비동기 처리 가 불가피 하 다.
Android 는 이 개발 난이 도 를 낮 추기 위해 AsyncTask 를 제공 합 니 다.AsyncTask 는 봉 인 된 백 스테이지 퀘 스 트 클래스 로 말 그대로 비동기 퀘 스 트 입 니 다.
AsyncTask 는 Object 류 에 직접 계승 되 며,위 치 는 android.os.AsyncTask 입 니 다.AsyncTask 작업 을 사용 하려 면 세 개의 일반적인 인 자 를 제공 하고 몇 가지 방법 을 다시 불 러 와 야 합 니 다(적어도 하 나 를 다시 불 러 옵 니 다).
AsyncTask 는 세 가지 일반적인 유형 인 Params,Progress,Result 를 정의 합 니 다.
AsyncTask 를 사용 한 학생 들 은 비동기 로 데 이 터 를 불 러 오 는 데 최소한 다음 과 같은 두 가지 방법 을 다시 써 야 한 다 는 것 을 알 고 있 습 니 다.
4.567917.이 task 는 한 번 만 실 행 될 수 있 습 니 다.그렇지 않 으 면 여러 번 호출 할 때 이상 이 발생 할 수 있 습 니 다
간단 한 예시
new AsyncTask<Void, Void, Void>() {
//
protected Void doInBackground(Void... params)
{
try
{
Thread.sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
}
data.add("new item");
return null;
}
// listview
@Override
protected void onPostExecute(Void result)
{
adapter.notifyDataSetChanged();
listView.onRefreshComplete();
}
}.execute(null);