AsyncTask 의 세 가지 속성 값 과 네 단계

2382 단어 AsyncTask
최근 에는 AsyncTask 로 네트워크 와 관련 된 조작 을 처리 하 는 것 을 배 웠 다.코드 가 복잡 해 보이 지 는 않 지만 의문 이 많다.그래서 API 문 서 를 읽 고 제 가 배 운 코드 와 연습 한 코드 를 보 여 드 렸 습 니 다.만약 잘못 이 있 으 면 지적 을 환영 합 니 다!
1.AsyncTask 에 관 한
AsyncTask 의 하위 클래스 를 만 들 때 이 세 가지 구체 적 인 유형 값 을 제시 해 야 합 니 다.괄호 는 일반적인 뜻 입 니 다.나 는 API 문서 의 해석 을 잘 이해 하지 못 하지만 아래 를 내 려 다 보 았 다.
doInBackground(Params...)
publishProgress(Progress...)
onProgressUpdate(Progress...)
onPostExecute(Result)
그것들 이 모두 누구 에 게 전달 되 었 는 지 알 수 있 고,괄호 안에...의 매개 변 수 는 배열 로 이해 할 수 있다.
2.AsyncTask 의 네 단계
1.onPreExecute():이 방법 은 작업 이 시작 되 기 전에 진행 되 며 UI 스 레 드(메 인 스 레 드)에서 호출 되 어 UI 작업 을 할 수 있 습 니 다.마지막 으로 로그 의 인쇄 정 보 를 드 리 겠 습 니 다.
2.doInBackground(Params...):이 방법 은 onPreExecute()가 완 료 된 후 바로 배경 에서 진행 되 며 임 무 를 수행 하고 Result 를 onPostExecute(Result)에 전달 합 니 다.또한 이 기간 에 PublishProgress(Progress...)를 호출 할 수 있 습 니 다.이 방법 은 onProgressUpdate(Progress...)에 데 이 터 를 전달 할 수 있 습 니 다.
3.onProgressUpdate(Progress...):publish Progress(Progress...)가 호출 된 후에 이 방법 은 UI 스 레 드 에서 호출 됩 니 다.따라서 PublishProgress(Progress...)와 onProgressUpdate(Progress...)를 이용 하면 네트워크 데 이 터 를 불 러 오 거나 읽 을 때 기다 리 거나 버퍼 링 하 는 UI 효 과 를 낼 수 있 습 니 다.내 가 마지막 으로 제시 한 효과 도 는 비슷 한 기능 을 가지 고 있다.
4.onPost Execute(Result):doInBackground(Params...)가 완 료 된 후에 UI 스 레 드 에서 호출 되 고 여기 서 Result 를 처리 합 니 다.
3.제 가 연습 할 때 쓴 코드
이것 은 시작 작업 입 니 다.여기 execute()는 execute(url 1,url 2,url 3)와 같은 여러 개의 인 자 를 전달 할 수 있 습 니 다.

그리고 doInBackground 에서 여러 작업 을 처리 할 수 있 습 니 다.Publish Progress 와 onProgress Update 도 유사 합 니 다.

4.최종 효과 도
확인 하기 전에 이 TextView 는 비어 있 습 니 다.확인 후 얻 은 정 보 를 불 러 오기 전에 이 TextView 는 Loading 을 표시 합 니 다.gif 가 잘 하지 못 했 는 지 이상해 보 입 니 다.또 정상 적 인 상황 에서 Loading 은 스 쳐 지나 갔다.내 가 있 는 곳 은 정지점 디 버 깅 을 할 때 캡 처 해서 만 든 것 이다.

마지막 으로 위 에서 소개 한 네 가지 방법의 로그 메시지 입 니 다.


이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기