浏览 SDKs · Android
平台
SDKsAndroid

分页获取好友列表

分页获取当前账号的好友列表,并同步好友变更事件。

复制

分页拉取当前登录用户的好友关系列表,避免全量一次性加载导致的数据臃肿。返回的每条记录包含好友的用户基础资料及备注等好友属性。

OpenIMClient.getInstance().friendshipManager.getFriendListPage(
    new OnBase<List<UserInfo>>() {
        @Override
        public void onSuccess(List<UserInfo> friends) {
            // 使用 friends 更新好友列表
        }

        @Override
        public void onError(int code, String error) {
            // 处理错误
        }
    },
    0,
    40,
    true
);

参数说明

参数类型是否必填说明
baseOnBase<List<UserInfo>>是异步请求回调。
offsetint是分页起始偏移量,首批拉取传 0。
countint是本页期望返回的好友数量。
filterBlackboolean是传入 true 表示自动过滤黑名单中的用户;传入 false 则一并返回。

返回结果

成功回调返回当前分页的 List<UserInfo>。客户端应以 userID 为主键对本地好友数据进行去重与增量合并;当返回列表条目数小于 count 时,通常表示已到达末页。

好友资料可通过对应的数据对象读取,常用属性包括:

字段说明
userID好友的全局唯一用户 ID。
nickname好友账号公开昵称。
faceURL好友账号头像 URL 地址。
remark当前用户为该好友设置的备注名。
ex好友关系扩展字段。
addSource添加好友的来源途径。
operatorUserID建立或更新该关系的操作者用户 ID。
createTime成为好友的时间戳。

监听好友关系变动

好友新增、资料修改或被删除时,可通过在应用全局注册的 OnFriendshipListener 接收实时通知,客户端应以 userID 为主键进行数据合并或移除:

@Override
public void onFriendAdded(FriendInfo friend) {
    // 成功添加好友,插入列表或刷新界面
}

@Override
public void onFriendInfoChanged(FriendInfo friend) {
    // 好友昵称、备注或头像更新,按 userID 刷新对应项
}

@Override
public void onFriendDeleted(FriendInfo friend) {
    // 好友关系解除,按 userID 从本地好友列表中移除
}