安卓定时器实现

141 阅读1分钟

内容

  1. 延时操作
new Handler().postDelayed(new Runnable(){  
            public void run() { 
                   //TODO
            } 
        }, 5000);   //5秒
  1. 定时任务,间隔固定时间执行某项操作
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 消息传递机制,主要用于线程间通信。

  1. 在主线程中定义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;
        }
    }
};
  1. 在子线程调用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();
}

参考链接

blog.csdn.net/qq_34906385…

Handler的讲解