集成环信聊天,需要设置显示头像和昵称,环信官网也给出了很详细的方案,我这里说的第二种,通过发送消息添加附加信息,传用户的头像和昵称信息来实现,这里是详细的攻略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);
}
}
}
问题出在备注的地方,由于每次存之前,都将之前存的删除了,所以最终导致只保存了一个用户。
把这段代码注释掉就好了。
致新手。