본문 바로가기
학습 log (이론)/java

'핸들러' 스레드 통신을 위한

by abbear25 2016. 11. 13.

Handler

MessageQueue에 Message를 넣기 위한 클래스

Thread간 메시지를 주고 받기 위해 사용

handlerMessage()메소드를이용하여 message를 다양하게 처리 가능

MyHandler handler = new MyHandler();


변수 및 메소드

Message obtainMessage(int what, int arg1, int arg2, Object obj);

전달할 메시지를 저장

위의 변수 중에 필요한 것만 작성

what, 메시지 구분 변수

arg1, 전달할 정수 값

arg2, 전달할 정수 값

obj, 전달할 객체 

boolean sendMessage(Message msg)

바로 전송

boolean sendMessageAtFrontOfQueue(Message msg)

최우선 전송

boolean sendMessageDelayed(Message msg, long delayMillis);

지정한 delayMillis 이후에 실행될 msg를 전송

boolean snedMessageAtTime(Message msg, long uptimeMillis)

지정된 시간에 msg를 전송


1.Handler 생성

private Handler myHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0){
                Log.i(TAG,""+result);
            }
        }
    };


2.Thread 생성

private Runnable myTask = new Runnable() {
        @Override
        public void run() {
            Message msg = myHandler.obtainMessage(0);
            myHandler.sendMessage(msg);
        }
    };


3.실행

myTask.run();



반응형

'학습 log (이론) > java' 카테고리의 다른 글

'클래스' Java #5  (0) 2017.03.24
'전위(++i) 후위(i++) 증감연산자' 필수상식  (0) 2016.12.23
'List VS Map' 기본 사용법 정리  (0) 2016.12.06
'java api' 기초 #1  (0) 2016.11.27
'Math' 수학관련 함수  (0) 2016.10.16