-
AsyncTask 샘플안드로이드(이클립스)/막 써 2017. 1. 17. 15:45반응형
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
/**
* <pre>
* extends AsyncTask<Void, Void, String>
* └ 제너릭 타입 인자가 들어감
* └ 첫번째 인자는 doInBackground(Void... params)의 인자를 정함
* └ 두번째 인자는 onProgressUpdate(Void... values)의 인자를 정함
* └ 세번째 인자는 onPostExecute(String result)의 인자를 정함
* </pre>
* @since
* <pre>
* Create : 2016. 11. 11. 오전 9:59:10
* </pre>
* @author abyser
*/
public class AsyncTask_Sample extends AsyncTask<Void, Void, String> {
private static final String LOG_TAG = "AsyncTask_Sample";
private Context mContext;
private ProgressDialog pd;
/**
* 생성자
* @param context Context
*/
public AsyncTask_Sample(Context context) {
this.mContext = context;
}
/**
* 스레드 작업 전 UI 작업
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
pd = new ProgressDialog(mContext);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("작업 중 입니다.");
pd.setCancelable(false);
pd.show();
}
/**
* 스레드 작업
*/
@Override
protected String doInBackground(Void... params) {
String result = "";
try {
// TODO 작업
// publishProgress(); // onProgressUpdate() 메소드 호출
} catch (Exception e) {
Log.e(LOG_TAG, "doInBackground() Exception : " + e.toString());
}
return result;
}
/**
* 스레드 작업 중 할 작업
* doInBackground()에서 publishProgress();을 호출하면서 넘긴 값을 받음
*/
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
/**
* 스레드 작업 후 UI 작업
* doInBackground()에서 return 으로 넘긴 결과 값을 받음
*/
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(pd != null){
if(pd.isShowing()){
pd.dismiss();
}
}
}
}
반응형'안드로이드(이클립스) > 막 써' 카테고리의 다른 글
안드로이드 ADB를 이용한 무선 디버깅 (0) 2017.04.18 argb 값을 헥사 값으로 출력하기 (0) 2017.03.24 타블랫인지 스마트폰인지 확인하기 (0) 2016.11.15 앱에서 다른 앱 호출하기 (0) 2016.11.11 안드로이드 6.0 권한 설정 관련 (0) 2016.07.17