안드로이드용 앱을 개발하면서 자주 사용하는 비동기 작업 코드를 정리하였습니다.
1. Handler
2. AsyncTask
3. Timer & TimerTask
4. Theard & Message
1. Handler
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 로직(단시간 처리가능한 로직) & UI
}
}, 1000); // 1초후 실행
@Override
public void run() {
// 로직(단시간 처리가능한 로직) & UI
}
}, 1000); // 1초후 실행
2. AsyncTask
new AsyncTask<String, Integer, Boolean>() {
@Override
protected void onPreExecute() {
// UI 처리
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... params) {
// 로직 처리
return true;
}
@Override
protected void onProgressUpdate(Integer... progress) {
// UI 처리
}
@Override
protected void onPostExecute(Boolean result) {
// UI 처리
}
@Override
protected void onCancelled() {
super.onCancelled();
}
}.execute();
@Override
protected void onPreExecute() {
// UI 처리
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... params) {
// 로직 처리
return true;
}
@Override
protected void onProgressUpdate(Integer... progress) {
// UI 처리
}
@Override
protected void onPostExecute(Boolean result) {
// UI 처리
}
@Override
protected void onCancelled() {
super.onCancelled();
}
}.execute();
3. Timer & TimerTask
new Timer().schedule(new TimerTask() {
public void run() {
// UI 및 로직
}
}, 1000); // 1초후 실행
public void run() {
// UI 및 로직
}
}, 1000); // 1초후 실행
4. Theard & Message
new Thread(new Runnable() {
@Override
public void run() {
// 로직처리
@Override
public void run() {
// 로직처리
handler.sendEmptyMessage(0);
}
});
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// UI처리
}
};
}
});
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// UI처리
}
};
