Android App

thread, handler (백그라운드) in Android Studio

YunSeong 2021. 8. 8. 17:04
728x90
반응형

https://youtu.be/aYjdfpit6lc

 

 

android에서는

thread를 이용해서 백그라운드에서 실행될 부분들을 정의해줄 수 있다.

그리고 thread를 활용하면서 메인 실행부와 충동이 있을 수 있기 때문에

thread 안에서는 handler을 이용해서 

UI 작업을 하는 것 같다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
thread = new Thread() {
    public  void run() {
        while(isThread){
            try {
                sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            handler.sendEmptyMessage(0);
        }
    }
};
thread.start();
cs

thread를 활용하기 위해서 먼저 위와 같이 

Thread 객체를 만들어줘야한다. (1)

그 후에 run() 함수에 백그라운드에서 실행될 부분을 정의해준다. (2~12)

정의해준 thread 객체를 실행한다. (13)

 

이 때 thread를 종료 시키기 위해서는 3열의 isThread에 false를 넣어서 while문이 끝나게하는 식으로 하면 된다. 

 

그리고 9열에서 handler을 사용하는데 그때 밑의 handleMessage() 함수가 호출된다.

 

 

1
2
3
4
5
6
private Handler handler = new Handler() {
    @Override
    public void handleMessage(@NonNull Message msg) {
        Toast.makeText(getApplicationContext(), "만두만두", Toast.LENGTH_SHORT).show();
    }
};
cs

handler.sendEmptyMessage()의 parameter를 msg.what을 통해서 반환 받을 수 있다.

그래서 parameter을 이용해서 여러 종류의 UI 작업을 정의할 수 있다.

 

 

 

728x90
반응형