Android/기본스킬
핸들러에 객체메시지 전달하는 방법
덩치
2014. 4. 15. 16:13
Handler에 msg로 int값을 보낼 수 있다는것은 알것이다.
(http://biig.tistory.com/34 - 핸들러 사용법 포스팅)
그렇다면, 메시지로 객체를 전달할 수는 없을까 ??
할 수 있다.
기존에는
handler.sendEmptyMessage(int);
형식으로 메시지를 전송했다면,
같은 위치에서
Message msg = handler.obtainMessage();
으로 선언 해 주면
msg.what(int);
msg.obj(Object);
msg.arg1(int);
msg.arg2(int);
이런식으로 메시지에 객체를 담을 수 도 있고, 인트값도 저렇게 넣어 줄 수 있다.
잘 활용한다면 매우 유용하다.
예를들어 다른 액티비티에 객체를 전달해야 하는 경우, parcelable를 상속받고 기타 과정이 복잡한데
Handler를 통해 Object를 넘겨주면 매우 간단하게 해결이 가능하다.
그리고 sendEmptyMessage 대신
handler.sendMessage(msg);
로 해주면 전달이 완료된다.