2.6.0 stable 是一个里程碑的 versaion 。因为其中做了相当多的改动和优化,如果你是新用户可无须参考下面文档直接集成。如果你是从下2.+版本准备升级 2.6.0 版本的开发者需要仔细阅读下面文档。
优化如下:
1 push 整体优化 push到达率大幅提升
2 用户信息缓存设计优化
3 相册优化(相册文件夹,预览等)
4 一些 UI 和细节上的优化
改动如下:
1 用户信息提供者的接口变动
之前的用户信息缓存只做了内存缓存 ,此次优化变更后新增一级数据库缓存。当然接口也有一些变化了
old:
RongContext.getInstance().getXXX
new:
RongUserInfoManager.getInstance().getXXX
以 demo 为例变更类:
ContactNotificationMessageProvider.java
2 包名变更(直接更换 Kit 依赖的可以无视此处)
io.rong.imkit.util 下包名全部变更为: io.rong.imkit.utils
例:
import io.rong.imkit.utils.AndroidEmoji;
import io.rong.imkit.utils.RongDateUtils;
3 第三方库的冲突解决变更
eventbus 是 android 常用的第三方类库
2.6.0stable 的版本已解决 eventbus 冲突的问题
4 AsyncImageView 的 用法改变(改动地方较多)
地理位置中
LocationMapActivity.java 中的 addMarker 方法
imageView.setResource(url, 0);
不再需要 new Resource
5 需要注释代码
RongIMClient.recordNotificationEvent(id);
RongIM.getInstance().getRongIMClient().clearNotifications();
6 push manifest 配置
以前旧的 manifest 的 push 相关的广播服务需要去除。换成新的
7 接口调用问题
RongIM.getInstance().getRongIMClient().XXX 的方法已经过时 并且不推荐使用
以后代码中直接 RongIM.getInstance().XXX
例如:
old:
RongIM.getInstance().getRongIMClient().sendMessage
new:
RongIM.getInstance().sendMessage
8 connect 连接判断问题
以前可能判断是否有RongIM 和 RongIMClient 实例 和 判断与融云服务端 connect 状态大家会这样写
if(RongIM.getInstance() != null && RongIM.getInstance().getRongIMClient() != null){}
但是在 2.6.0 以后都不建议这样去写了
直接获取与融云连接状态的枚举做判断即可,写法如下
if (RongIM.getInstance().getCurrentConnectionStatus() == ConnectionStatus.CONNECTED) {
}
以上八点是笔者亲测 解决的编译报错 报错的类可能很多 但是重复就是这些 1 3 4 这三个点的问题