多次使用postDelayed方法导致计时加快问题-创新互联

给出这么个场景

站在用户的角度思考问题,与客户深入沟通,找到港南网站设计与港南网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、网络空间、企业邮箱。业务覆盖港南地区。

假设你要做一个计时器,点击按钮开始计时,再点击按钮重新开始计时

我这边要使用postDelayed方法来对控件进行刷新显示,也能达到计时效果

贴代码

多次使用postDelayed方法导致计时加快问题

说一下

习惯上直接接postdelayed。。。。,然后第一次点击计时没问题,第二次就看起来好像计时加快了。。。

其实是这么个问题,如果那个handler不是成员变量,每次点击都new一个handle,或者没有将handler里面的线程给结束掉直接再new runnable里面执行代码块的话,就会多一条线程出来,对控件进行操作,其实每条线程对控件执行的间隔都是1秒,但由于是多个线程对控件进行操作,增加的次数多了,看起来就好像是计时加快了。

解决的办法是保证只有一条存活的线程对控件进行操作,所以每次调用计时方法时,先将该handler里面的线程结束掉,再用新线程对控件进行操作,酱紫就没问题了

结束掉线程的方法是这个

handler.removeCallbacks(runnable);

好,就这样

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:多次使用postDelayed方法导致计时加快问题-创新互联
网站路径:http://hbruida.cn/article/dpjess.html