Android中Timer计时器如何使用

今天就跟大家聊聊有关Android 中Timer计时器如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

公司主营业务:成都做网站、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出余干免费做网站回馈大家。

Android考虑到线程安全问题,不允许在线程中执行UI线程,在Android中,有一个很有意思的类:android.os.Handler,这个可以实现各处线程间的消息传递。先看段代码,这个实例化了一个Handler,Handler可以通过Message在多个线程通讯,我这里做的是定时recLen加1,然后以一定的格式,显示到recTime上(UI线程上的操作)。

final Handler handler = new Handler(){        public void handleMessage(Message msg) {            switch (msg.what) {                   case 1:                        recLen++;         recTime.setText(GetRecTime(recLen));                 break;                    }                    super.handleMessage(msg);            }         };

下面定实例化一个TimerTask,这个是为Timer提供一个定时执行的内容。我在这个方法中加的是给Handler一个发送消息功能,因这在Timer的线程中,无法直接操作UI线程。

TimerTask task = new TimerTask(){          public void run() {           Message message = new Message();              message.what = 1;               handler.sendMessage(message);        }    };

剩下的工作就简单多,添加一个Timer,可以让程序运行起来了

timer = new Timer(true);  timer.schedule(task,1000, 1000); //延时1000ms后执行,1000ms执行一次  //timer.cancel(); //退出计时器

说到这里,也许有些还感觉云里雾里,笔者好久没写东西,也不知道怎么把问题说的更明白,这个再贴上笔者开始的错误写法,对比错误写法,也许能让大家更快的明白过来。

TimerTask task = new TimerTask(){        public void run() {            recLen++;          recTime.setText(GetRecTime(recLen));//直接在TimerTask中操作UI线程,单步调试的时候发现,程序根本就没执行到这里      }    };    timer = new Timer(true);  timer.schedule(task,1000, 1000);

看完上述内容,你们对Android 中Timer计时器如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网站栏目:Android中Timer计时器如何使用
标题网址:http://myzitong.com/article/gcooge.html