학습 log (이론)/java
'핸들러' 스레드 통신을 위한
abbear25
2016. 11. 13. 23:01
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();
반응형