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

集成环信聊天,需要设置显示头像和昵称,环信官网也给出了很详细的方案,我这里说的第二种,通过发送消息添加附加信息,传用户的头像和昵称信息来实现,这里是详细的攻略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);
            }
        }
    }

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容