/** 初始化系统数据 */ private void initData() { userDB = new UserDB(FriendListActivity.this); // 本地用户数据库 messageDB = new MessageDB(this); // 本地消息数据库 util = new SharePreferenceUtil(this, Constants.SAVE_USER); msg = (TranObject) getIntent().getSerializableExtra(Constants.MSGKEY); // 从intent中取出消息对象 if (msg == null) { // 如果为空,说明是从后台切换过来的,需要从数据库中读取好友列表信息 list = userDB.getUser(); } else { // 如果是登录界面切换过来的,就把好友列表信息保存到数据库 list = (List<User>) msg.getObject(); userDB.updateUser(list); } initListViewData(list); }
@Override public void getMessage(TranObject msg) { // 重写父类的方法,处理消息 // TODO Auto-generated method stub switch (msg.getType()) { case MESSAGE: newNum++; application.setRecentNum(newNum); // 保存到全局变量 TextMessage tm = (TextMessage) msg.getObject(); String message = tm.getMessage(); // ChatMsgEntity entity = new ChatMsgEntity("", MyDate.getDateEN(), // message, -1, true);// 收到的消息 // messageDB.saveMsg(msg.getFromUser(), entity);// 保存到数据库 Toast.makeText(FriendListActivity.this, "亲!新消息哦 " + msg.getFromUser() + ":" + message, 0) .show(); // 提示用户 MediaPlayer.create(this, R.raw.msg).start(); // 声音提示 User user2 = userDB.selectInfo(msg.getFromUser()); // 通过id查询对应数据库该好友信息 // RecentChatEntity entity2 = new RecentChatEntity(msg.getFromUser(), // user2.getImg(), newNum, user2.getUserName(), MyDate.getDate(), // message); // application.getmRecentAdapter().remove(entity2);// 先移除该对象,目的是添加到首部 // application.getmRecentList().addFirst(entity2);// 再添加到首部 application.getmRecentAdapter().notifyDataSetChanged(); break; case LOGIN: User loginUser = (User) msg.getObject(); Toast.makeText(FriendListActivity.this, "亲!" + loginUser.getId() + "上线了哦", 0).show(); MediaPlayer.create(this, R.raw.msg).start(); break; case LOGOUT: User logoutUser = (User) msg.getObject(); Toast.makeText(FriendListActivity.this, "亲!" + logoutUser.getId() + "下线了哦", 0).show(); MediaPlayer.create(this, R.raw.msg).start(); break; default: break; } }