一.概述
做Android开发一年多了,现在想写写博客不断丰富自己,也记录一下自己学习历程,同时希望能对刚入门的同学有所帮助。
今天讲讲Android中定时、延时去改变界面控件该如何操作。我所了解的定时延时有三种:
1.使用Timer定时器。
2.使用Executor框架。
3.使用Handler。
二.使用
1.先看看Timer的延时操作直接上代码:
Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { //延时1s后的操作 } },1000);1000为delay的时间单位是毫秒。定时操作代码:
Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { } },1000,1000);
前一个1000是延时1s然后一个是定时每隔1s都会走run方法。
2.Executor的延时使用:
Executor的定时操作:Thread thread = new Thread(new Runnable() { @Override public void run() { //1后要做的操作 } }); ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); executorService.schedule(thread,1,TimeUnit.SECONDS);
Thread thread = new Thread(new Runnable() { @Override public void run() { } }); ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); executorService.scheduleAtFixedRate(thread,1,1,TimeUnit.SECONDS);这里Executors是个静态工厂类封装了很多关于线程处理的机制有兴趣的同学可以去研究下。TimeUnit是一个枚举来确定前面两个参数的时间单位。
3.Handler的延时操作:
Handler handler = new Handler();handler.postDelayed(new Runnable() { @Override public void run() { } },1000);
handler与其他两个延时的不同就在于handler里的run可以直接改变ui界面,而上面的两个延时则必须通过message消息队列把消息通过message传到handler然后再改变ui。
3.注意事项
1.Timer在不用时要调用timer.cancel();将Tmer停止
2.Executor在不用时调用shutdown();方法终止线程。
4.结束语
第一篇博客希望以后继续努力写出好的文章来,分享出来,不喜勿喷谢谢大家。