티스토리 뷰

[Android] Handler Message obj 전달 (what, arg1, arg2)

android.os.Handler 를 이용해서 다른 쓰레드에서의 UI를 핸들링 하려면 Message object 를 전달하여 Handler 내부에서 처리한다.


안드로이드에서 작업시 통신이나 기타 작업을 위해서 쓰레드를 이용하는 경우에 타 쓰레드에서 액티비티 등의 UI 를 변경할 경우 android.os.Handler 를 사용하게 됩니다.


Handler 클래스를 Activity 클래스 내에서 정의 해 줍니다.

Handler handler = new Handler() { // 메인에서 생성한 핸들러
@Override
public void handleMessage(Message msg) {
if(msg.what == 0){
// 메세지를 통해 받은 값을 TextView에 출력
textView.setText("arg1="+msg.arg1);
textView.setText("arg2="+msg.arg2);
}
}
};


쓰레드에서 액티비티의 UI 를 변경해야 할 경우 액티비티의 핸들러에게 메시지를 보냅니다. 쓰레드로 핸들러 인스턴스를 넘겨주는 방법은 각자 필요에 맞게 넘겨주면 됩니다.

// obtain 메소드로 메세지 생성
Message msg = Message.obtain(mHandler, 0, arg1, arg2);
mHandler.sendMessage(msg); // 메인스레드의 핸들러에 메세지 보내기



댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글