集成环信聊天设置用户头像昵称后台退出后只能显示一个用户

集成环信聊天,需要设置显示头像和昵称,环信官网也给出了很详细的方案,我这里说的第二种,通过发送消息添加附加信息,传用户的头像和昵称信息来实现,这里是详细的攻略http://www.imgeek.org/article/825307875
但我要说的不是这个,方案是好方案,至少不用自己再去胡乱摸索,从茫茫多的DemoHelper类中的方法找自己要的东西,但是估计是环信迭代的问题,导致攻略上并没有提到,用了这种方案后,是可以正常显示,但退出后台后,再打开,只能显示一个用户的昵称和头像,断点后可以发现数据库只存了一个用户的信息,打开储存的方法,发现这里,DemoDBManager类里面:

  synchronized public void saveContactList(List<EaseUser> contactList) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        if (db.isOpen()) {
            db.delete(UserDao.TABLE_NAME, null, null);//问题出在这里
            for (EaseUser user : contactList) {
                ContentValues values = new ContentValues();
                values.put(UserDao.COLUMN_NAME_ID, user.getUsername());
                if(user.getNick() != null)
                    values.put(UserDao.COLUMN_NAME_NICK, user.getNick());
                if(user.getAvatar() != null)
                    values.put(UserDao.COLUMN_NAME_AVATAR, user.getAvatar());
                db.replace(UserDao.TABLE_NAME, null, values);
            }
        }
    }

问题出在备注的地方,由于每次存之前,都将之前存的删除了,所以最终导致只保存了一个用户。
把这段代码注释掉就好了。
致新手。

    原文作者:彭八面
    原文地址: https://www.jianshu.com/p/a2131da4eed7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞