野火IM退出登录后重新登录获取不到任何会话信息

aabbcc 9月前 286

退出登录调用 ChatManagerHolder.gChatManager.disconnect(true, false);退出连接,如果重新调用connect会显示connect status 为1,证明已经连接成功,但是调用ChatManager.Instance().getConversationListAsync方法毫无反应也不显示报错,打印日志的时候 KLog.d(TAG,"reloadConversationList:getWorkHandler");这个日志里面的打印也是没有调用;为什么连接成功了调用getConversationListAsync方法毫无反应;

ChatManager.Instance().getWorkHandler().post(() -> {
                KLog.d(TAG,"reloadConversationList:getWorkHandler");
                ChatManager.Instance().getConversationListAsync(types, lines, new GetConversationListCallback() {
                    @Override
                    public void onSuccess(List<ConversationInfo> conversationInfos) {
                        KLog.d(TAG,"reloadConversationList:"+conversationInfos.size());
                        conversationListLiveData.postValue(conversationInfos);
                        loadingCount.decrementAndGet();
                    }
                    @Override
                    public void onFail(int errorCode) {
                        KLog.d(TAG,"reloadConversationList errorCode:"+errorCode);
                        loadingCount.decrementAndGet();
                    }
                });
            });

测试过如果退出登录,手动杀死了app,再重新登录调用connect,连接成功而且调用这个getConversationListAsync会有数据返回;杀死就正常

这是调用退出登录的代码:

 ChatManagerHolder.gChatManager.disconnect(true, false);
        SharedPreferences sp = getSharedPreferences(Config.SP_CONFIG_FILE_NAME, Context.MODE_PRIVATE);
        sp.edit().clear().apply();

        sp = getSharedPreferences("moment", Context.MODE_PRIVATE);
        sp.edit().clear().apply();

        OKHttpHelper.clearCookies();

        WebStorage.getInstance().deleteAllData();
        CookieManager.getInstance().removeAllCookies(null);
        CookieManager.getInstance().flush();
最新回复 (4)
  • x86 9月前
    引用 2
    disconnect第一个参数可以理解成是否清楚本地数据的意思,传false就不会清除了
  • aabbcc 9月前
    引用 3
    第一个参数不是是否停止推送吗?
    /**
         * 主动断开连接
         *
         * @param disablePush  是否停止推送,在cleanSession为true时无意义
         * @param cleanSession 是否清除会话session,清除之后,所有之前的会话信息会被删除
         */
    我现在改成ChatManagerHolder.gChatManager.disconnect(true, true);
    也一样,调用ChatManager.Instance().getConversationListAsync方法毫无反应也不显示报错
  • x86 9月前
    引用 4
    aabbcc 第一个参数不是是否停止推送吗? /** * 主动断开连接 * * @param disablePush 是否停止推送,在cleanSession为true时无意 ...
    sorry,记错了,我们先确认下
  • HeavyRain 9月前
    引用 5
    服务器是什么时候的版本
返回