作用:
1.在主线程中获取并处理消息
2.在任意线程中发送消息
注意:
handleMessage(Message msg):处理消息的方法。通常重写该方法来处理消息,在发送消息时,该方法会自动回调。
发送消息的方法有很多种:sendEmptyMessage(int what)、sendEmptyMessageDelayed(int what ,long delayMillis)等,执行后会自动回调handleMessage(Message msg)方法。
例1:
public class MainActivity extends Activity {
final int TIME = 60; //定义时间长度
final int TIMER_MSG = 0x001; //定义消息代码
private ProgressBar timer; //声明水平进度条
private int mProgressStatus = 0; //定义完成进度
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timer = (ProgressBar) findViewById(R.id.timer); //获取进度条组件
handler.sendEmptyMessage(TIMER_MSG); //发送消息,启动进度条
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//当前进度大于0
if (TIME - mProgressStatus > 0) {
mProgressStatus++; //进度+1
timer.setProgress(TIME - mProgressStatus); //更新进度条的显示进度
handler.sendEmptyMessageDelayed(TIMER_MSG, 1000); //延迟一秒发送消息
} else {
Toast.makeText(MainActivity.this, "时间到!游戏结束!", Toast.LENGTH_SHORT).show(); //提示时间已到
}
}
};
}