为了监视名单的变更和状态更新,实现IRosterListener接口并使用addRemoteRosterListener方法在IM会话中注册一下,如下面的框架代码所示:
IRosterListener listener = new IRosterListener.Stub() {
public void presenceChanged(String contact) throws RemoteException {
// TODO Update the presence icon for the user.
}
public void rosterChanged() throws RemoteException {
// TODO Update the roster UI.
}
public void selfPresenceChanged() throws RemoteException {
// TODO Update the user’s presence.
}
};
try {
imSession.addRemoteRosterListener(listener);
} catch (RemoteException e) { }
RosterListener包含事件处理函数,当一个联系人从当前用户的名单中添加或者删除、联系人的状态发生变化和用户自己的状态发生变化时,都能触发这些函数。