-
1 . 用户信息不显示(头像和昵称都不显示)
用户信息不显示, 一般分为两种情况。 -
- 本地用户信息不显示
-
- 好友信息不显示
无论哪一种, 都可能是因为没有设置用户信息的缘故。
请检查一下几方面: 1) 检查是否设置了 setUserInfoProvider。 2) 设置的用户信息是否正确。
-
- 用户信息内存缓存中查询未命中,该中情况需要通过调用 io.rong.imkit.userinfo.RongUserInfoManager#addUserDataObserver 方法添加用户信息改变的监听来获取用户信息。
-
2. 图像设置后没有刷新, 还是显示原先的设置的图像
1)缓存方式使用错误如果您使用的是 setUserInfoProvider 方式。则您需要注意是否使用了缓存。 即
public static void setUserInfoProvider(UserInfoProvider userInfoProvider, boolean isCacheUserInfo)
假如 isCacheUserInfo 设置为 true 时, 则您需要注意的是:
只有缓存中没有消息的时候才会走 Provider 中的回调, 否则只会直接取缓存中的用户信息。
所以,当您使用了用户缓存功能, 但又想更新用户信息的情况, 您需要调用 refreshUserInfoCache 方法来刷新缓存。
当调用 refreshUserInfoCache 调用缓存时, 则会刷新缓存数据, 同时发送 EventBus 事件, 通知会话列表和会话界面刷新用户信息(昵称和头像)。
2)头像虽然不同,但是路径相同 因为本地缓存是通过 url 作为 key 来取缓存的,假如 url 不改变, 则还是会从缓存中取的原先的图片。 此问题解决方法只能是让不同图片使用不同的路径。
-
3**. 同时使用了 setUserInfoProvider 和 setUserInfo 两个设置用户信息的方法**
由于 message 的 setUserInfo 设置用户信息的方法优先级高于 setUserInfoProvider 。 所以当用户通过setUserInfo 可能造成 setUserInfoProvider 设置无效。 建议两种不要混用。