内容
- 延时操作
new Handler().postDelayed(new Runnable(){
public void run() {
//TODO
}
}, 5000); //5秒
- 定时任务,间隔固定时间执行某项操作
final Handler handler = new Handler();
Runnable runnable = new Runnable(){
@Override
public void run() {
// TODO 在此处添加执行的代码
handler.postDelayed(this, 50);// 50是延时时长
}
};
handler.postDelayed(runnable, 50);// 打开定时器,执行操作
handler.removeCallbacks(runnable);// 关闭定时器处理
扩展
Handler是一套 Android 消息传递机制,主要用于线程间通信。
- 在主线程中定义Handler
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
{
Log.i("track_manager","handler stop");
}
break;
default:
break;
}
}
};
- 在子线程调用
mHandler.sendEmptyMessage(0);
private void updateWeather() {
new Thread(new Runnable(){
@Override
public void run() {
//耗时操作,完成之后发送消息给Handler,完成UI更新;
mHandler.sendEmptyMessage(0);
//需要数据传递,用下面方法;
Message msg =new Message();
msg.obj = "数据";//可以是基本类型,可以是对象,可以是List、map等;
mHandler.sendMessage(msg);
}
}).start();
}