728x90
AsyncTask
안드로이드에서는 UI쓰레드를 정지 시켜 둘 수 없기 때문에,
background 작업이 필요한 경우를 위해서 AsyncTask 지원
onPreExcute
-background 작업이 시작하기 전에 호출 / 백그라운드 작업전 해야할 것
doInBackground
-baackground 작업 구간
onProgressUpdate
-doInBackground 이 실행되는 도중에 호출 / 중간중간 UI 업그레이드 하고 싶을 때
onPostExcute
-doInBackground 가 완료 되면 호출이 된다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//비동기식식
BackgroundTask backgroundTask = new BackgroundTask();
backgroundTask.execute(); //doInBackground 실행 다음 밑으로 진행
}
//doinbackground 변수 타입, onProgress 타입, onPostExcute 타입
class BackgroundTask extends AsyncTask<Integer, Integer, Integer> {//프리미티브 타입 x, 레퍼런스 타입으로
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Integer doInBackground(Integer... integers) {//Integer 가 여러개일 수 있음
publishProgress(values); //onProgressUpdate 호출
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
}
}
댓글