• [안드로이드] 안드로이드 스레드를 만져보자2012.11.15 PM 09:10

게시물 주소 FONT글자 작게하기 글자 키우기

메인 스레드는 사용자 인터페이스 위젯에게 이벤트를 전달하거나 화면을 그리는 작업을 담당합니다.

이러한 이유로 UI스레드라고도 불립니다.

안드로이드의 단일 스레드 모델에서는 2가지 원칙이 존재합니다.
UI스레드는 블록시키면 안 된다.
UI스레드가 아닌 다른 스레드가 UI 툴킷을 조작하면 안 된다.

UI스레드를 블록시키지 않기 위해서 작업 스레드는 시간이 많이 걸리는 작업을 할 경우
스레드를 별도로 생성하는 것을 고려해야합니다.
이러한 목적으로 작성되는 스레드를 배경 스레드or작업 스레드라고 합니다.

작업 스레드를 하나 생성해서 스레드안에서 1초마다 정수를 출력하게 만들겠습니다.

xml없이 .java로 갈께요



package com.example.thread;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {
//전역변수
WorkerThread w;
boolean running = true;

//스레드 클래스 생성
class WorkerThread extends Thread {
public void run() {
int i = 0;
//반복문(초기문; 조건문; 증감문)
for(i = 0; i < 20 && running; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
Log.v("THREAD", "Time = " + i);
}
}
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public void onStart() {
//스레드 시작
super.onStart();
w = new WorkerThread();
running = true;
w.start();
}

@Override
public void onStop(){
super.onStop();
running = false;
}

}



실행결과는 로그캣으로 봐주세요
댓글 : 0 개
친구글 비밀글 댓글 쓰기