网站建设资讯

NEWS

网站建设资讯

Android中的Timer计时器怎么使用-创新互联

这篇“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://njwzjz.com/article/cscope.html