参考地址1:https://developer.rongcloud.cn/ticket/info/Dj+76JSLR636HZ+8sA==?type=1
参考地址2:http://blog.csdn.net/qq_19986309/article/details/46375291
参考视频:http://v.youku.com/v_show/id_XMTM3MjgyODYzNg==.html
用户信息(头像)如何刷新?
为什么调用 refreshUserInfoCache,有的头像刷新了,有的没有。
回答:
融云有两种显示用户信息的方式,一种是给需要注册的 app 使用的,就是 setUserInfoProvider,所有用户信息都是通过 getUserInfo 的回调来传入。因为 app 使用是需要注册的,所以所有用户信息应该都保存在 app 自己的服务器,只需要写成:
RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
@Override
public UserInfo getUserInfo(String userId) {
return getUserInfoFromServer(userId);
}
}, true);
同步方法这里返回 UserInfo 就可以了。如果是网络异步请求,需要在异步回调里用 refreshUserInfoCache 刷新。
第二种是给不需要注册的app使用,就是 setCurrentUserInfo 以及 setMessageAttachedUserInfo(true) 这种方式。本端发送的消息里携带了自己的用户信息,对方收到后优先使用消息里携带的这一信息。可以在陌生人之间实现用户信息传递,比如公共聊天室。
需要注意的是,第二种优先级比第一种高,就是说如果这条消息里携带了用户信息,再对这个 id 做刷新操作,这条消息显示的用户信息不会改变。因此不建议混用,有特殊需求除外。