Android Timer的使用(不能在Timer中直接更新UI控件)
- 初始化Timer和TimerTask
private Timer timer = null; private TimerTask task =new TimerTask() { @Override public void run() { /** * 更新UI控件的第一种方法: * 使用handler */ //handler.sendEmptyMessage(0); /** * 直接在这里面更新界面会直接崩溃 */ //tv.setText("aaaaaaaaaaa"); /** * 更新UI控件的第二种方法: * 在activity中可以使用runOnUiThread来更新UI */ runOnUiThread( new Runnable() { @Override public void run() { tv.setText( "aaaaaaaaaaa"); } }); } };
timer = new Timer(true); timer.schedule( task, 1000, 1000); //延时1000ms后执行,1000ms执行一次
取消Timer
timer.cancle();
如果想再次启动timer必须重新初始化Timer和TimerTask,TimerTask初始化一次是不行的
注:不能在Timer中直接更新UI控件 handler可以使用handler.postDelay(runable,延迟执行时间)来模拟Timer, 区别:Timer是异步线程,handler是运行在主线程(在activity中的指UI线程)中的。