用户信息(头像)如何刷新?

为什么调用 refreshUserInfoCache,有的头像刷新了,有的没有。
发布时间: 2016-01-26 14:51

回答:

融云有两种显示用户信息的方式,一种是给需要注册的 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 做刷新操作,这条消息显示的用户信息不会改变。因此不建议混用,有特殊需求除外。