안드로이드 개발 질문/답변
(글 수 45,052)
gcm으로 채팅 어플을 구현중입니다.
GCMIntentService 의 onMessage 에서 수신된 메시지를 db에 저장하는 것 까지 모두 구현된 상태입니다.
채팅방에서 메시지를 보내면, 해당 메시지도 물론 db에 저장이 되구요...
문제는 수신된 메시지를 채팅창에 표시를 해 주어야 하는데 쿼리를 날리건 뭘 해도 널 포인터 에러가 생성되네요.
db를 새로고침한다거나 하는 방식으로 해야 할 텐데 왜 이러는지도 모르겠고.. 도움 부탁드립니다.
2012.12.03 10:58:54
저는 GCMIntentService에서 수신된 메시지를
실제 메시지들을 보여주는 activity로 수신된 메시지를 브로드캐스트로 날려주고
메시지들을 보여주는 activity의 리시버에서 메시지를 받아서 뿌려주는 방법을 했어요
그리고 requery는 11버전부터 deprecate 됐기 때문에 이 메소드는 사용하지 않았고요
requery 대신 developer에서 권하는 방법인
Cursor newCursor = _DB.rawQuery("select * from message", null);
sCursor.changeCursor(newCursor);
sCursor.notifyDataSetChanged();
이 방식으로 db내용이 변경된 사항에 대해서 다시 뿌려줬습니다.
gcmChatRoom.adapter.getCursor ( ).requery ( );
이런식으로 intentservice 부분에서 채팅창에 리쿼리를 해줘도 해당 부분에서 널 포인터 에러가 생성되네요..