Handler的使用
- Handler mHandler = new Handler()时覆盖override这个方法 handleMassage;
- Messa msg = new Message()后使用方法getDate().putString(key,value)添加数据
- 使用mHandler.sendMessage(msg)发送消息
例:
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.getData().getString("personalinfo").equals("realname")) {
realnameTextView.setText(msg.getData().getString("value"));
Constant.REALNAME = msg.getData().getString("value");
} else if (msg.getData().getString("personalinfo").equals("level")) {
levelTextView.setText(msg.getData().getString("value"));
Constant.LEVEL = msg.getData().getString("value");
}
}
};
Message的使用:
创建Message
1. Message msg = new Message();
2. Message msg = Message.obtain(); //推荐用这种方法 。因为在需要大量创建Message的场景下,第一种方式消耗的资源太大
添加数据并发送Message
//新建一个Message
msg.getData().putString("personalinfo", PersonalInfo); msg.getData().putString("value",re.getJSONObject("user").getString(PersonalInfo));
mHandler.sendMessage(msg);
Activity.runOnUiThread()
更新UI,利用Activity.runOnUiThread()
如果当前线程是UI线程,那么行动是立即执行。
如果当前线程不是UI线程,操作是发布到事件队列的UI线程。
runOnUiThread(new Runnable() { //Runnable对像就能在ui程序中被调用。
@Override public void run () {
loadingDialog.dismiss();
ToastUtil.showShortToast(LoginActivity.this, "无法连接服务器");
}
}
);