Notice
Recent Posts
Recent Comments
Link
투케이2K
12. (AndroidStudio/android/java) AsyncTask 비동기 작업을 사용해서 실시간 카운트 실시 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
// ==== [호출 방법1] ====
new A_Task().execute();
// ==== [호출 방법2] ====
A_Task a_task = new A_Task();
a_task.execute();
// ==== [AsyncTask 클래스 생성] ====
private class A_Task extends AsyncTask<Void, Integer, Void> {
/**
[AsyncTask 비동기 작업 실행 순서]
1. 순서 - onPreExecute() -> doInBackground() -> onProgressUpdate() -> onPostExecute()
2. 파라미터 정의 <Integer, Integer, Void> - <doInBackground, onProgressUpdate, onPostExecute>
3. Void ... params - 동일한 파라미터를 여러개 받을 때, 자동으로 배열처리한다는 의미입니다
*/
// ==== [내부 변수 선언 부분] ====
int count = 1;
// ==== [비동기 작업 실행 부분] ====
@Override
protected void onPreExecute() {
super.onPreExecute();
/**
1. doInBackground 메소드가 실행되기 전에 실행되는 메소드입니다
2. 비동기 처리전에 무엇인가 처리를 하고 싶다면 사용하면 됩니다
*/
// ==== [작업 실행 변수값 설정 및 초기화] ====
Toast.makeText(A_Main.this, "비동기 작업을 실행합니다", Toast.LENGTH_SHORT).show();
}
@Override
protected Void doInBackground(Void ... params) {
/**
1. 비동기 작업에서 최종 처리하고 싶은 내용을 작성합니다
2. 실시간 진행 상황을 확인하고 싶을 경우 onProgressUpdate() 메소드를 호출해서 확인할 수 있습니다
3. 모든 작업이 처리되면 onPostExecute() 메소드가 호출됩니다
*/
// ==== [실행할 작업 내용 작성] ====
while(count<=10){
count += 1; //카운트 값을 증가시킵니다
publishProgress(progress_status); //비동기에서 onProgressUpdate() 메소드를 호출합니다
SystemClock.sleep(300);
}
return null;
}
@Override
protected void onProgressUpdate(Integer ... values) {
super.onProgressUpdate(values);
/**
1. 비동기 처리의 진행 상황을 실시간으로 확인하고 싶을 때 사용하면 됩니다
2. 백그라운드에 호출되는 경우 처리됩니다
*/
// ==== [실시간 표시 내용 작성] ====
Toast.makeText(A_Main.this, "카운트 : "+String.valueOf(values[0]), Toast.LENGTH_SHORT).show();
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
/**
1. doInBackground 메소드 후에 실행되는 메소드입니다
2. 최종 작업이 완료된 경우 수행이 됩니다
*/
// ==== [작업 완료 후 수행될 내용 작성] ====
Toast.makeText(MainActivity.this, "비동기 작업이 종료되었습니다", Toast.LENGTH_SHORT).show();
}
}//AysnTask 스레드 클래스 종료
/* =========================== */
/* =========================== */
[요약 설명]
* 1. 순서 - onPreExecute() -> doInBackground() -> onProgressUpdate() -> onPostExecute()
* 2. 파라미터 정의 <Integer, Integer, Void> - <doInBackground, onProgressUpdate, onPostExecute>
* 3. Void ... params - 동일한 파라미터를 여러개 받을 때, 자동으로 배열처리한다는 의미입니다
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments