private EaseUser getUserInfo(final String username){
// To get instance of EaseUser, here we get it from the user list in memory
// You'd better cache it if you get it from your server
String curUser = EMClient.getInstance().getCurrentUser();
if(username==null||curUser==null)return null;
EaseUser user = null;
/* if(username.equals(curUser))
return getUserProfileManager().getCurrentUserInfo();*/
user = getContactList().get(username);
if(user == null && getRobotList() != null){
user = getRobotList().get(username);
}
// if user is not in your contacts, set inital letter for him/her
if(user == null){
user = new EaseUser(username);
EaseCommonUtils.setUserInitialLetter(user);
final UserBean.Account[] account = {null};
MyApplication.getInstance().getCurrentActivity().runOnUiThread(new Runnable() {
public void run() {
account[0] = AccountLoader.getUser(username);
}
});
if(account[0] !=null) {
user = new EaseUser(account[0].getId());
user.setNickname(account[0].getNickname());
user.setAvatar(account[0].getAvatar());
userDao.saveContact(user);
}
}
return user;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
`runOnUiThread`就是让代码在主线程上跑的,如果
AccountLoader.getUser()
是请求网络部分的话,最简单的就是:
newThread(newRunnable(){publicvoidrun(){finalUseruser=AccountLoader.getUser(username);MyApplication.getInstance().getCurrentActivity().runOnUiThread(newRunnable(){account[0]=user;});}}).start();