环信2.x,参考文档和官网上的视频做的注册广播接收消息,但是接收消息要重进聊天页面,而且还有报错说Are you missing a call to unregisterReceiver.

问题描述

上部分代码,全部代码在附件://只有注册了广播才能接收到新消息,目前离线消息,在线消息都是走接收消息的广播(离线消息目前无法监听,在登录以后,接收消息广播会执行一次拿到所有的离线消息)        NewMessageBroadcastReceiver msgReceiver = new NewMessageBroadcastReceiver();        IntentFilter intentFilter = new IntentFilter(EMChatManager.getInstance().getNewMessageBroadcastAction());        intentFilter.setPriority(3);        registerReceiver(msgReceiver, intentFilter);                //注册消息监听之后要调用这个方法,否则会收不到消息        EMChat.getInstance().setAppInited(); class NewMessageBroadcastReceiver extends BroadcastReceiver {                @Override        public void onReceive(Context context, Intent intent) {            // 注销广播            abortBroadcast();                 // 消息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);            // 如果是群聊消息,获取到group id            if (message.getChatType() == ChatType.GroupChat) {                username = message.getTo();            }            if (!username.equals(username)) {                // 消息不是发给当前会话,return                return;            }                        //刷新消息            conversation.addMessage(message);            adapter.notifyDataSetChanged();            listView.setAdapter(adapter);            listView.setSelection(listView.getCount()-1);    //显示最后一条消息        }    }

解决方案

这个现在都是用方法事件注册的接收消息,建议下载个开源的 demo.http://www.easemob.com/download看下这个链接里面的问题了。别用广播的方式来接收消息了 ,这个是以前的老版本的 接收消息的方式了。

时间: 2024-09-18 18:29:00

环信2.x,参考文档和官网上的视频做的注册广播接收消息,但是接收消息要重进聊天页面,而且还有报错说Are you missing a call to unregisterReceiver.的相关文章

希望环信官方早日更新文档教程和视频教程

问题描述 虽然3.x的版本已经出来了,但是相应的文档教程和视频教程并没有及时更新,有的还沿用着2.x的讲解,让人容易集成失败,或者是出线很多问题,希望官方早日更新 解决方案 http://docs.easemob.com/解决方案二:3.x 文档已经放出

linux内核源码及对应参考文档(1)

内核文件结构:内核源码:http://www.oldlinux.org/Linux.old/kernel/0.1x/ 内核 交互结构 内核参考文档 

ivy中文参考文档(10)-ivy文件

1) ivy文件 ivy的使用完全是基于以"ivy文件"著称的模块描述符.ivy文件是xml文件,通常被称为ivy.xml,包含模块依赖的描述,它发布的制品 和它的配置. 这里有一个最简单的ivy文件: <ivy-module version="2.0"> <info organisation="myorg" module="mymodule" /> </ivy-module> 如果你想知道

ivy中文参考文档(1)-目录

欢迎使用ivy参考文档,如果你完全不了解ivy,请在深入阅读这份参考文档之前,简单了解一下它的特性,FAQ和教程. 参考概要: 这份文档被分解为以下几个部分 一. 介绍 1. 术语 (English / 中文) 这个部分介绍一些在ivy文档中到处使用的词语,例如组织,模块,配置,设置 2. 主要概念 (English / 中文 上/下) 这个部分介绍ivy中使用的主要概念:依赖解析器,变量,表达式,另外还有还对ivy的主要 概念---模块配置做了良好介绍. 3. ivy如何工作 (English

spring 的参考文档是用什么编辑器写的

问题描述 spring 的参考文档是用什么编辑器写的 如图这种文档,是用什么编辑器写的?好像不是markdown 解决方案 https://www.mediawiki.org/wiki/Download/zh

SendKeys参考文档_vbs

SendKeys参考文档  一直用foxipgw程序自动登录网关,今天做了一个自动调用foxipgw的程序,就不用每次点"确定"了,代码如下. set s= WScript.CreateObject("WScript.Shell")  app_window = s.run ("D:\Soft\FoxIPGW.EXE")  WScript.Sleep 200  s.AppActivate app_window   s.SendKeys "

[参考文档] [翻译]Oracle 12c R2优化器白皮书

[参考文档] [翻译]Oracle 12c R2优化器白皮书 原文链接:http://www.oracle.com/technetwor ... edb-12c-1963236.pdf 第一版翻译链接:http://www.itpub.net/thread-1855401-1-1.html Oracle数据库12c第二版优化器 Oracle白皮书 2016年11月 序言 优化器是Oracle数据库最引人入胜的部件之一,因为它对每一个SQL语句的处理都必不可少.优化器为每个SQL语句确定最有效的执

把PPT演示文档发布到网上播放

带上笔记本电脑去外面演示你的PowerPoint文档越来越普遍.不过带上几斤重的家伙不方便.有方法解决这个问题吗?有!把演示文档发布到网上就可以了. 注:本文所述技巧已于PowerPoint 2003下测试通过 首先,在PowerPoint下制作好讲义文件. 然后,点击"文件"菜单→"另存为网页"命令,并在弹出的另存为对话框中点击"发布"按钮.如图1所示 图1 在这个窗口中将讲义网页的各个参数详细设置一下,而等一切无误之后便可以点击"发

word文档怎么添加音频或视频批注

  word文档怎么添加音频或视频批注           1.单击快速访问工具栏右侧的[自定义快速访问工具栏]按钮(),在随即打开的下拉菜单中,执行[其他命令]命令,打开"Word选项"对话框. 2.在"从下列位置选择命令"下拉列表框中,选择"所有命令",并在其下方的列表框中选择[插入声音]命令,然后单击[添加]按钮,将其添加到右侧列表框中,如图1所示. 图1 添加[插入声音]命令 3.单击[确定]按钮,此时快速访问工具栏中将出现用于插入音频和