이전 블로그에서는 스레드에서 UI을 접근 할때는 "핸들러"가 필요했었습니다!!
근데 이런거 필요 없이 이 블로그에서는
AsyncTask클래스 라는 것을 정의하고,
이거 가지고 객체를 만들면, 그 안에서
"Thread로 동작하는 코드"와 "UI 접근하는 코드"를
메소드만 불리를 해서 코드를 같이 넣어서 사용할 수가 있습니다.
<AsyncTask클래스 구조 설명>
doInBackground() -> 1."스레드 안"에 있는 코드르 여기다가 넣으시면 됩니다.
2.스레드 안에서 어떤 걸 동작하겠다라는 거 입니다.
3.doInBackground(String... params) 에 ...은 "가변길이 파라미터" 입니다.
4.무언가 처리하는 코드를 넣어주면 됩니다.
5.doInBackground()안에서 작업 할 것이 과정이 다 끝나면 마지막에 완료가 onPostExecute()메소드에서 됩니다!!
onProgressUpdate() -> 1.doInBackground() 안에서 어떤 값을 리턴해주냐에 따라서,
"결과값"을 전달 받는게 onPostExecute()입니다. (여기서 Type이 결정이 됩니다!="같은 Type이어야 합니다")
2.중간중간 UI를 업데이트를 하고 싶다고 한다면,
onProgressUpdate() 메소드가 호출 되는 시점에 해주시면 됩니다.
근데, 이 onProgressUpdate() 메소드가 내가 원할때, 호출이 되어야 하잖아요!
그 경우 (내가 원할때, 호출이 되어야 하잖아요!) 에는,
doInBackground()메소드 안에서 publishProgress()를 사용하면 onProgressUpdate()메소드가 호출이 됩니다
( doInBackground() ---------> (업데이트해줘라!!publishProgress()) ---------> onProgressUpdate() ).
( 참고 - 데이터가 전달이 됩니다 )
onPostExecute()
1.doInBackground()안에서 작업 할 것이 과정이 다 끝나면 마지막에 완료가 onPostExecute()메소드에서 됩니다!!
<AsyscTask 사용 코드>
AsyscTask 사용하기 간편함
("핸들러" 사용하지 않아도 됨)
-이것도 같이 보기-
[Android] Background 처리(104) - AsyncTask 사용법, 설명★★
'■ Android > Tip' 카테고리의 다른 글
[Android] 20 - 3.소켓(핸들러 사용) - "서버"코드를 [서비스]로 변경 (0) | 2020.02.13 |
---|---|
[Android] 20 - 2.소켓(핸들러 사용) - "클라이언트"의 UI 업데이트 (0) | 2020.02.12 |
[Android] 10 - 4.스레드 사용하기(코드), 핸들러 사용 ★★(더 간단한 방법으로 핸들러 사용!) (0) | 2020.02.09 |
[Android] 10 - 3.스레드 사용하기(코드), 핸들러 사용 ★ (0) | 2020.02.08 |
[Android] 10 - 2.스레드 사용하기(설명) (0) | 2020.02.08 |