AsyncTask 의 세 가지 속성 값 과 네 단계
2382 단어 AsyncTask
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 은 스 쳐 지나 갔다.내 가 있 는 곳 은 정지점 디 버 깅 을 할 때 캡 처 해서 만 든 것 이다.
마지막 으로 위 에서 소개 한 네 가지 방법의 로그 메시지 입 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android Activity에서 YouTube 동영상을 전체 화면으로 표시Android 개발이었던 한 가지 과제는 다음과 같습니다. 하나의 활동에 WebView가 있습니다. 그 WebView의 내용은 YouTube 동영상을 임베드한 Iframe입니다. 당연히 WebView 화면의 재생 버...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.