꿈꾸는 시스템 디자이너

Activity, Thread, Handler 사용법 본문

Development/Android

Activity, Thread, Handler 사용법

독행소년 2012. 1. 17. 15:00


Activity에서 Thread를 생성하여 이용하면서, 생성된 Thread가 Activity의 내부를 참조할 필요가 있을 경우 문제가 발생할 수 있다.
Thread가 Activity의 멤버 변수를 참조하는 것은 문제가 없지만, 뷰 객체(GUI 객체)는 참조할 수 없다. 런타임시 문제가 발생한다.
이처럼 뷰 객체와 같이 직접 참조가 불가능한 객체를 참조해야할 필요가 있는 경우에는 Activity에 핸들러를 구현하여 간접 참조하는 방식을 이용한다.

1. 스레드 사용법

public void onCreate(Bundle savedInstanceState) {

...

MyThread thread = new MyThread();

thread.setDaemon(true);   //Activity가 종료하면, 생성한 thread도 함께 종료됨.

thread.start();

 
2. 핸들러 사용법

Handler myHandler = new Handler() {

    public void handleMessage(Message msg) {

    if (msg.what == 0) {
 

//수행할 장업
                        //멤버 참조 

    }

    }

};

class MyThread extends Thread{
     public void run(){
          ...
          myHandler.setEmptyMessage(0);   //핸들러로 메시지 전달
          ...
     } 


눌러주시면 큰 힘이 됩니다.
Comments