android Timer与TimerTask的相关操作
发布日期:2021-06-30 21:49:30 浏览次数:2 分类:技术文章

本文共 886 字,大约阅读时间需要 2 分钟。

 项目上面的部分操作需要使用到定时器进行周期性的控制。网络上面对于定时器的操作通常有三种实现方法。

我是通过TimerTimerTask相结合实现的定时器功能。具体实现过程如下:

第一步,得到Timer的实例化对象

  Timer timer= new Timer() ;

第二步,实例化TimerTask对象

       TimerTask timerTask new TimerTask(){

          publicvoid run(){

               //Doing something

           }

  }

  实例化TimerTask对象的时候,需要重写它的run()方法,然后在这个方法体内增加需要执行的具体操作。比如  输出一句话,发送一个消息之类的。

第三步,启动定时器

       Timer.schedule(TimerTask, delay, period) ;

       这样创建并启动一个定时器的工作就完成,但是在实际使用的过程中,可能会需要一些其他方面的操作手段。

       因为在项目程序运行过程中,某个时刻定时器的参数被修改,比如delayperiod。为了及时的使用最新的正确的数据,就需要对已经存在的定时器进行关闭并且使用新的参数重新创建并启动。

       第一步,取消TimerTask,并在定时器Timer队列中将其删除。

       IftimerTask == null){

       timerTask .cancel() 

      

第二步,重新启动定时器

       IftimerTasknull){

        timerTask new TimerTask

     public void run(){

     //do something

   ) 

      

       timer.scheduletimeTaskdelayperiod) 

       值得注意的地方是被执行了cancle()方法之后的TimerTask,在重新启动定时器的时候,必须重新实例化TimerTaskOK,不然会报“java.lang.IllegalStateException:TimerTask is scheduled already”的错误。每个定时器任务TimerTask只能被放置一次

转载地址:https://loongembedded.blog.csdn.net/article/details/40682545 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android帧布局(Frame Layout)
下一篇:Android表格布局(Table Layout)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月04日 14时18分40秒