티스토리 뷰

이전에 다른 Activity로 메시지를 전송하기 위해 Intent를 사용하였는데, 새로운 Activity를 시작할 때 Parameter로 주는 것이다.

그러면 이미 실행되고 있는 액티비티에 메시지를 전송하려면 어떻게 해야 할까?

C2DM BroadCast Activity에서 C2DM관련 메시지를 받아 처리한다. 이때 TabChat Activity로 메시지를 보내려면 Handler를 사용하면 된다.

메시지를 받고자 하는 쪽에서 Handler를 작성한다.

static Handler chatHandler = new Handler(){
	@Override
	public void handleMessage(Message msg) {
		switch(msg.what){
		case 1:
			ChatItem item = (ChatItem)msg.obj; 
			adapter.add(item);
			adapter.notifyDataSetChanged();
			break;
		}
	};
};

 

여기서는 Adapter에 내용을 추가하여 ListView에 갱신을 요청한다.

메시지를 보내려면 메시지 객체를 생성해서 말 그대로 보내면 된다.

Message msg = new Message();
msg.what = 1;
msg.obj = new ChatItem((int)retId, senderId, ChatItem.MSG_RECEIVED, message, Calendar.getInstance().getTimeInMillis());
TabChat.chatHandler.sendMessage(msg);

생각보다 간단하다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함