안드로이드 개발 질문/답변
(글 수 45,052)
채팅 어플을 구현중입니다.
c2dm으로 말이죠..
채팅창에서...
메세지를 보냅니다-> 디비에 저장합니다. ->리스트를 업데이트 합니다.
c2dm 리시버로 메세지를 받습니다. -> db에 저장합니다. 여기서가 문제입니다.
db에 저장했는데.. 받은 사람 입장에서는 메세지를 받앗는지 못받앗는지 알수 없습니다.
디비에는 저장이 되었지만..
리스트를 업데이트 할수 없습니다. ㅠㅠ
c2dm 메세지 리시버에서 현재 실행중인 intent를 업데이트 방법을 구상하던중
registerOnSharedPreferenceChangeListener 이 방법을 생각했습니다.
시스템변수로 메세지를 받을때 넣어놓고
채팅방 intent에서 리스너로 해당 키값이 변경 됫을때 디비에 있는 최신메세지로 업데이트 하라고 말이죠..
근데 이상하게...리스너가 말을 듣지 않습니다..
같은 채팅 intent 안에서 변경되었을때만 감지하고..
c2dm 메세지 리시버에서 SharedPreferences 값이 변경했을때는 실행중인 채팅 intent 에서는 감지를 못합니다..
왜그럴까요? ㅠ 고수님들 한수 부탁드립니다.




자답입니다.
채팅방에서 브로드캐스트로 c2dm 리시버를 받아서 업데이트 해주면 된답니다. ^_