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

工作内容:

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值