Page 609 - 3-3
P. 609
private class GetData extends AsyncTask<String, Void, String> {
// 스레드에 제네릭스로 미리명시
ProgressDialog progressDialog;
// 진행 다이얼로그 표시변수
String errorString = null;
// 에러값 표시
@Override
protected void onPreExecute() { // 스레드 초기화작업
super.onPreExecute(); // Background 작업 시작전에 UI 작업진행
progressDialog = ProgressDialog.show(DataActivity.this,
"Please Wait", null, true, true);
//progressDialog 와 Please Wait 표시
}
@Override
protected void onPostExecute(String result) {
//doInBackground 메소드 종료후 리턴값을 PostExecute 메소드에서 파라메터로
전달받는 메소드
super.onPostExecute(result); // Background 작업 끝난후 ui 작업진행
progressDialog.dismiss(); // progressDialog 버림
mTextViewResult.setText(result); // TextView 에 결과값 표시
if (result == null) {
mTextViewResult.setText(errorString); // 결과값 없을 경우 에러표시
} else {
mJsonString = result; // 결과값 있을경우 결과값을 변수에 저장
showResult(); // 결과값 표시
}
}
@Override
// 외부에서 execute 함수호출할때 정의된 파라미터를 배열로 전달받음
protected String doInBackground(String... params) {
//background 작업 진행
String serverURL = params[0];
//URL 자원이 존재하지않거나 프로토콜이 올바르지 않을경우 방지위해 예외처리
try {
URL url = new URL(serverURL);
// 연결url 설정
HttpURLConnection httpURLConnection = (HttpURLConnection)
url.openConnection();
- 609 -