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 는 한 번 만 실 행 될 수 있 습 니 다.그렇지 않 으 면 여러 번 호출 할 때 이상 이 발생 합 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.