반응형
이 게시물은 다음 링크를 참조하여 학습했습니다.
이번 시간은 AsyncTask를 정리하려한다.
1. AsyncTask
AsyncTask를 간단하게 설명하면,
저번에 했던 Thread, Runnable, Handler 클래스를 이용해서 스레드 통신을 구현한 내용을 AsyncTask라는 클래스가 갖고 있다.
그래서 실제로 코딩을 해보니 코드의 내용이 체감상 절반 이하로 줄었다.
AsyncTask가 갖고있는 메서드 중 일반적으로 4개의 메서드를 오버라이드한다.
메서드와 하는 역할은 다음과 같다.
onPreExecute() : 작업이 실행되기 직전에 UI 스레드에 의해 호출. 초기화 작업 역할
doInBackground(Object[] objects) : onPreExecute()가 호출된 후, 백그라운드 스레드에서 호출된다. AsyncTask가 수행할 실질적인 작업 실행 코드
onProgressUpdate(Object[] values) : doInBackground()에서 publishProgress()를 호출하면, UI스레드에서 호출된다. 작업 진행 상태를 화면에 갱신 역할
onPostExecute(Object o) : 백그라운드 스레드의 모든 실행이 완료되면 UI스레드에서 호출되는 메서드.
2. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NewAsyncTask task = new NewAsyncTask();
task.execute();
}
private class NewAsyncTask extends AsyncTask{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Object[] values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
}
@Override
protected Object doInBackground(Object[] objects) {
return null;
}
}
|
cs |
반응형
'Legacy' 카테고리의 다른 글
[안드로이드 스튜디오 독학#28] 현재 날씨 어플2 (0) | 2021.02.09 |
---|---|
[안드로이드 스튜디오 에러#2] Retrofit, Jaxb, OkHttpClient (0) | 2021.02.05 |
[안드로이드 스튜디오 정리#12-1] Thread Class (0) | 2021.02.04 |
[안드로이드 스튜디오 독학#27] 현재 날씨 어플 (3) | 2021.02.04 |
[안드로이드 스튜디오 에러#1] XmlPullParser (0) | 2021.02.03 |