-
[안드로이드] 안드로이드 스레드를 만져보자2012.11.15 PM 09:10
메인 스레드는 사용자 인터페이스 위젯에게 이벤트를 전달하거나 화면을 그리는 작업을 담당합니다.
이러한 이유로 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 개
user error : Error. B.