腾讯IM互踢监听遇到的坑

腾讯IM被踢下线有两个场景一个是在线的时候被踢,另一个就是不在线的时候被踢了,然后登录的时候报了被踢的错误码,之前就遇到了离线被踢的坑。
设置被踢监听:

		TIMUserConfig userConfig = new TIMUserConfig();
        userConfig.setUserStatusListener(new TIMUserStatusListener() {
            @Override
            public void onForceOffline() {
                //被踢的时候该方法会被执行
            }

            @Override
            public void onUserSigExpired() {

            }
        })

IM登录

public void login(String identifier,String userSig,TIMCallBack callback) {
        TIMManager.getInstance().login(identifier,userSig,callback);
    }
public interface TIMCallBack {
    void onError(int var1, String var2);

    void onSuccess();
}

如果登录失败会有一个6208(离线状态下被其他终端踢下线)的错误码,神奇的是如果你离线被踢了,然后登录的时候会走这个onError回调,如果你在onError里对6208做了处理同时也在onForceOffline做了处理的话,比如弹出dialog,这样的话两个方法都会被执行。

@Override
    public void initLoginError(int code) {
        switch (code) {
            //离线状态下被其他终端踢下线(这里不需要做处理,因为在MyApplication里已经做了互踢监听了)
            case 6208:
                break;
            case 6200:
                //当前没有网络
                showLoginMsg(getResources().getString(R.string.network_not));
                break;
            default:
                //其他失败情况
                showLoginMsg(getResources().getString(R.string.login_error));
                break;
        }
    }

我在这里对6208错误码不作处理,因为此时onForceOffline方法也会被执行,而onForceOffline我已经做了处理。之前发现离线被踢会弹出两个dialog,后来才知道原来这两个方法都会被执行,所以弹了两次dialog。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值