您的位置:首页 > 理论基础 > 计算机网络

Android及时通讯——配置环信及时通讯注意地方,EvevtBus使用详解,网络请求过程中退出出错处理办法

2016-10-14 17:59 525 查看
工作内容:

1.EventBus的基础使用。

2.配置环信及时通讯(易出错的地方)。

注意:执行环信请求时最好开子线程或在线程池中操作操作(需转到Ui线程来做View的处理)最好发一个handler来处理界面【接收消息时如果不转到UI线程来处理会消息延迟,需要点下界面才会显示出消息】

3.网络请求过程中退出了该Activity报错的处理办法。

学习分享:

一、EventBus的使用步骤

1.引入EventBus的依赖(android studio)github链接

2.二步搞定【建议用于MVP中的 Model —— Presenter传递桥梁】

前提准备:定义一个ModelEvent类(用于传递信息用)

第一步:Model层发送

EventBus eventBus = EventBus.getDefault()//初始化[可以放于构造函数中,需先于发送]


在需要发送消息的地方(会跳转到接收的地方执行)

eventBus.post(new ModelEvent())//可以先将数据放入ModelEvent中再传送


第二步:Presenter层接收Model发送过来的ModelEvent对象

注册EventBus

EventBus.getDefault().register(this)//这里的this表示当前类(常在构造函数中注册EventBus——必须先于调用/接收消息的方法执行)
定义接收方法

/**
* 调用此方法前需先注册的EventBus
* @param event 这里的参数类型是什么,就接收什么类型的数据
* ThreadMode.BACKGROUND  表示在后台线程接收“消息”
* ThreadMode.MAIN        表示在前台/UI线程接收“消息”
* ThreadMode.ASYNC       表示异步接收“消息”[测试结果是属于:后台线程中执行]
*
* 这里的注解是接收方法的一种写法(简单)也可以参照github中的示例
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void fail(ModelEvent event){
LogTool.e("Event_fail");
}


定义注销EventBus

EventBus.getDefault().unregister(this)//这里的this表示当前类(常在构造函数中注册EventBus——必须先于调用/接收消息的方法执行)</span>


注意:

1.在发送方的EventBus对象需与接收方的对象是同一个(这里使用的一个getDefault,也可以使用一个静态对象来发送和接收)

2.初始化EventBus对象——post()—[发送到接收方]—注册——接收——取消注册

二、配置环信及时通讯(易出错的地方)。[这里使用了环信exampll/easeui模块]

1.首先是,下载了环信的SDK打开开发者文档(这里以环信及时通讯云V3.0为例子)

2.新开一个项目(工具:Android Studio)直接使用example中的easeui模块来开发及时通讯(【添加进项目】如下图)







3.添加依赖(将easeui添加成app模块的依赖)



注意:很多情况这里就开始报错,一看错误提示几百上千个错误【也有可能会在运行时出错,一直运行不起】

翻到错误的最下面,常见如下:



1.刚刚开始我觉得可能是要求的版本问题,结果一看人家要求的最底版本是9,适配版本是20(可以说现在最少都要高于这个配置了)——这里没错

2.在网上查了下说是导入的jar包有重复,翻看了一遍又一遍——无果

3.最后尝试着将easeui中的support-v4.jar删除之后再导入一个v4包发现可以运行了

注意:导包/添加依赖时需要注意你导入的jar包的SDK版本(一般在jar文件名的末尾)与你现在使用的SDK版本是否相同

三、网络请求过程中退出了该Activity报错的处理办法。

绑定视图和解绑视图(view)在onDestory时解绑presenter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐