안드로이드

안드로이드 AsynkTask 클래스

알통몬_ 2017. 3. 11. 18:09
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

차후에 있을 JSP, MYSQL, 안드로이드를 이용한 회원가입, 로그인 포스팅을
올리기 전 선행으로 필요한 AsyncTask 클래스에 대해 공부하겠습니다.

저도 자세하게는 모르지만 제가 JSP , MYSQL, 안드로이드 간의 통신을 하면서 사용한 부분들을
집중적으로 포스팅하겠습니다.

AsyncTask 클래스에 대해서는 
https://developer.android.com/reference/android/os/AsyncTask.html

여기서 원문으로 만나볼 수 있습니다 ㅎㅎ

AsyncTask는 자바의 Thread 클래스와 같은 개념입니다

AsyncTask는 3개의 제네릭 타입이 들어간 클래스인데요.

첫 번째 매개값은 AsyncTask의 첫 번째 메서드인 doInBackground메서드의 매개값의 타입이구요.
세 번째 매개값은 doInBackground 메서드의 리턴값과 onPostExecute메서드의 매개값입니다.
그리고 두번 째 매개값은 AsyncTask의 또 다른 메서드인 onProgressUpdate메서드의 매개값의 타입입니다.

그리고 AsyncTask를 실행하는 방법은 Thread 클래스는 start() 메서드로 실행하는 것처럼
AysncTask는 execute() 메서드로 실행합니다.
그리고 위 코드처럼 리턴값이 있다면 리턴값을 받아서 사용할 수도 있겠죠?
리턴값은 execute()메서드 뒤에 .get()메서드를 추가하시면 됩니다!~~
참고로 execute() 메서드 안에도 매개값이 들어가는데요. 

위 코드에서 sId[0]이라는 doInBackground의 매개변수가 사용되었죠?
저기에 들어갈 값이 execute(이곳에 값이) 처럼 사용해 주면 됩니다.
값이 여러개 필요할 경우는???
당황하실 필요없이 배열로 sId[1], sId[2] .....sId[n]을 doInBackground메서드 안에 선언하시고,
execute()의 매개값으로 필요한 값들을 넣어주시면 됩니다 ㅎㅎㅎ

UserDataTask userDataTask = new UserDataTask();
String userData = userDataTask.execute(id).get();

이런식으로 사용하시면 됩니다 ㅎㅎ



반응형