Android AsyncTask 상세 설명 및 사용 방법

3049 단어 AndroidAsyncTask
Android AsyncTask 상세 설명 및 사용 방법
 프로필:
   AsyncTask 는 봉 인 된 백 스테이지 퀘 스 트 클래스 로 말 그대로 비동기 퀘 스 트 입 니 다.
   AsyncTask 는 안 드 로 이 드 가 제공 하 는 경량급 비동기 류 로 AsyncTask 를 직접 계승 하여 클래스 에서 비동기 작업 을 실현 하고 인터페이스 가 현재 비동기 실행 정 도 를 피드백 합 니 다(인 터 페 이 스 를 통 해 UI 진도 업 데 이 트 를 실현 할 수 있 습 니 다).마지막 으로 실 행 된 결 과 를 UI 메 인 스 레 드 에 피드백 합 니 다.
  1.AsyncTask 를 사용자 정의 하려 면 클래스 를 써 서 AsyncTask 를 계승 할 수 있 습 니 다.
  eg: 、    
    //첫 번 째 매개 변 수 는 doInBackground 에서 들 어 오 는 유형 이 고,두 번 째 는 doInBackground 에서 업 데 이 트 된 매개 변수의 유형 이 며,세 번 째 는 doInBackground 가 완 료 된 후에 전 달 된 매개 변수 입 니 다.

  class MyAsyncTask extends AsyncTask<String, Integer, String> { . . .}
    주의해 야 할 방법 이 하나 있 는데,바로

protected String doInBackground(String... params) { . . . }
  일반적으로 사용자 정의 AsyncTask 가 하나의 Activity 에 만 사용 된다 면(Adapter 와 차이 가 많 지 않 음)익명 내부 클래스 를 사용 하 는 것 을 추천 합 니 다.
  서로 다른 클래스 에서 호출 이 필요 하 다 면 사용자 정의 AsyncTask 를 새로운 클래스 에 쓰 고 정 의 된 AsyncTask 에 완 료 된 리 셋 을 써 야 합 니 다.
  2.사용 방법:

  MyAsyncTask myAsyncTask = new MyAsyncTask();
  //    doInBackground      。
  myAsyncTask.execute(“Hello”);
  3.실행 중인 task 를 중단 하 는 방법:
    이 디 렉 터 리 의"AsyncTask 각 방법 호출 예시 및 상세 설명"을 참고 할 수 있 습 니 다. 
  4.반드시 상세 한 설명 을 보아 야 한다.
   AsyncTask 작업 을 사용 하려 면 세 개의 일반적인 인 자 를 제공 하고 몇 가지 방법 을 다시 불 러 와 야 합 니 다(적어도 하 나 를 다시 불 러 옵 니 다). 
   AsyncTask 는 세 가지 일반적인 유형 인 Params,Progress 와 Result 를 정의 합 니 다.
    Params 가 작업 을 시작 할 때 실행 할 입력 인자,예 를 들 어 HTTP 가 요청 한 URL 입 니 다.
    Progress 배경 작업 수행 의 백분율 입 니 다.
    Result 배경 에서 작업 을 수행 하고 최종 적 으로 돌아 온 결과,예 를 들 어 String.
   AsyncTask 를 사용 한 학생 들 은 비동기 로 데 이 터 를 불 러 오 는 데 최소한 다음 과 같은 두 가지 방법 을 다시 써 야 한 다 는 것 을 알 고 있 습 니 다.
doInBackground(Params...)배경 에서 실 행 됩 니 다.시간 이 걸 리 는 작업 은 모두 여기에 놓 을 수 있 습 니 다.여기 서 UI 를 직접 조작 할 수 없 음 을 주의 하 세 요.이 방법 은 배경 스 레 드 에서 실행 되 고 임무 의 주요 업 무 를 완성 하 는 데 시간 이 오래 걸린다.실행 과정 에서 Public publish Progress(Progress...)를 호출 하여 작업 의 진 도 를 업데이트 할 수 있 습 니 다.
onPostExecute(Result)  Handler 가 UI 를 처리 하 는 방식 에 해당 하 며,여기 서 doInBackground 에서 얻 은 결과 처리 조작 UI 를 사용 할 수 있 습 니 다.이 방법 은 주 스 레 드 에서 실 행 됩 니 다.작업 수행 결 과 는 이 방법의 매개 변수 로 되 돌아 갑 니 다.
   필요 하 다 면 이 세 가지 방법 을 다시 써 야 하지만 꼭 필요 한 것 은 아니다.
onProgressUpdate(Progress. . .)   publish Progress 방법 이 호출 된 후 진도 바 를 사용 하여 사용자 체험 도 를 증가 시 킬 수 있 습 니 다.이 방법 은 주 스 레 드 에서 실 행 됩 니 다.작업 수행 진 도 를 표시 하 는 데 사 용 됩 니 다.
onPreExecute()        이것 은 최종 사용자 가 excute 를 호출 할 때의 인터페이스 입 니 다.작업 이 실행 되 기 전에 이 방법 을 호출 하면 진행 대화 상 자 를 표시 할 수 있 습 니 다.
onCancelled()             사용자 호출 취소 시 할 작업
   AsyncTask 류 를 사용 합 니 다.다음은 몇 가지 지 켜 야 할 준칙 입 니 다.
    1.Task 의 인 스 턴 스 는 UI thread 에서 만들어 야 합 니 다.
    2.execute 방법 은 UI thread 에서 호출 해 야 합 니 다.
    3.onPreExecute(),onPostExecute(Result),doInBackground(Params...),onProgressUpdate(Progress...)를 수 동 으로 호출 하지 마 십시오.
    4.이 task 는 한 번 만 실 행 될 수 있 습 니 다.그렇지 않 으 면 여러 번 호출 할 때 이상 이 발생 합 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기