티스토리 뷰

728x90
반응형


Handler.handleMessage() 사용


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
private final MyHandler handler = new MyHandler(this);
 
private static class MyHandler extends Handler {
    private final WeakReference<MainActivity> weakReference;
 
    public MyHandler(MainActivity activity) {
        this.weakReference = new WeakReference<MainActivity>(activity);
    }
 
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what){
            case MESSAGE : {
                weakReference.get().textView.setText("변경됨");
            }
        }
    }
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    button = (Button) findViewById(R.id.handle_msg);
    textView = (TextView) findViewById(R.id.textView);
 
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Message message = new Message();
            message.what = MESSAGE;
            handler.handleMessage(message);
        }
    });
}
cs



이렇게 Message를 보내는 것으로

간단히 원하는 기능을 수행할 수 있다



+

핸들러를 만들 때 특정 루퍼를 지정하지 않으면,

인스턴스화되는 스레드에 기본 루퍼가 사용된다

(Main UI Looper)



반응형
공지사항
최근에 올라온 글