Message在Android是什么呢?
对于Android中Handler可以传递一些内容,通过Bundle对象可以封装String、Integer以及Blob二进制对象,我们通过在线程中使用Handler对象的sendEmptyMessage或sendMessage方法来传递一个Bundle对象到Handler处理器。对于Handler类提供了重写方法handleMessage(Message msg) 来判断,通过msg.what来区分每条信息。将Bundle解包来实现Handler类更新UI线程中的内容实现控件的刷新操作。相关的Handler对象有关消息发送sendXXXX相关方法如下,同时还有postXXXX相关方法,这些和Win32中的道理基本一致,一个为发送后直接返回,一个为处理后才返回 .
Handler mhandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
yzmbut.setText("重新获取");
yzmbut.setEnabled(true);
break;
case 1:
yzmbut.setEnabled(false);
yzmbut.setText("重新获取(" + tim + "S)");
break;
}
}
};
private void sentCode() {
Runnable runnable = new Runnable() {
@Override
public void run() {
running = true;
while (tim > 0) {
tim--;
mhandler.sendEmptyMessage(1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
running = false;
mhandler.sendEmptyMessage(0);
}
};
Thread s = new Thread(runnable);
s.start();
}