浏览 SDKs · Android
平台
SDKsAndroid

订阅用户在线状态

订阅指定用户的在线状态及多端登录信息。

复制

订阅指定用户的在线状态。订阅成功后,SDK 会立即返回所订阅用户的当前在线状态快照,并在对端上线、下线或平台变更时通过事件推送增量变更。

List<String> userIDs = Arrays.asList("user_a", "user_b");

OpenIMClient.getInstance().userInfoManager.subscribeUsersOnlineStatus(
    new OnBase<List<UsersOnlineStatus>>() {
        @Override
        public void onSuccess(List<UsersOnlineStatus> states) {
            // 使用 states 显示在线状态
        }

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

参数说明

参数类型是否必填说明
baseOnBase<List<UsersOnlineStatus>>是异步请求回调。
userIDsList<String>是期望订阅的目标用户 ID 列表,建议在进入对应聊天页面或列表时按需订阅。

返回结果

成功回调返回当前已订阅用户的初始在线状态快照 List<UsersOnlineStatus>。客户端应以 userID 为标识维护在线状态缓存:

字段说明
userID目标用户的全局唯一 ID。
status在线状态值(1 为在线,0 为离线)。
platformIDs当前登录在线的平台列表(例如 Android、iOS、Web 等平台编号)。

监听在线状态变更

后续当已订阅用户的在线状态发生变化时,SDK 会通过 OnUserListener 实时推送更新:

@Override
public void onUserStatusChanged(UsersOnlineStatus status) {
    // 收到状态变更通知,按 status.getUserID() 更新界面
}

当离开聊天页面或不再需要关注该用户时,请及时调用取消订阅用户状态释放资源,以避免过多的状态广播。