이전 블로그에서는 스레드에서 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 사용법, 설명★★