为什么EMConversation的对象conversation已经定义为全局变量了,在接受消息的BroadcastReceiver里面还要重新定义
private class NewMessageBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 消息id(每条消息都会生成唯一的一个id,目前是SDK生成)
String msgId = intent.getStringExtra("msgid");
//发送方
String username = intent.getStringExtra("from");
// 收到这个广播的时候,message已经在db和内存里了,可以通过id获取mesage对象
EMMessage message = EMChatManager.getInstance().getMessage(msgId);
EMConversation conversation = EMChatManager.getInstance().getConversation(username);
if (!username.equals(username)) {
// 消息不是发给当前会话,return
return;
}
conversation.addMessage(message);
adapter.notifyDataSetChanged();
// 注销广播
abortBroadcast();
}
}
不然接收不到消息
@Override
public void onReceive(Context context, Intent intent) {
// 消息id(每条消息都会生成唯一的一个id,目前是SDK生成)
String msgId = intent.getStringExtra("msgid");
//发送方
String username = intent.getStringExtra("from");
// 收到这个广播的时候,message已经在db和内存里了,可以通过id获取mesage对象
EMMessage message = EMChatManager.getInstance().getMessage(msgId);
EMConversation conversation = EMChatManager.getInstance().getConversation(username);
if (!username.equals(username)) {
// 消息不是发给当前会话,return
return;
}
conversation.addMessage(message);
adapter.notifyDataSetChanged();
// 注销广播
abortBroadcast();
}
}
不然接收不到消息
没有找到相关结果
已邀请:
1 个回复
环信技术支持中心
赞同来自: lihaiyang