热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用CountDownTimer回调率出错?-ErrorincallbackratewithCountDownTimer?

Ihavebeenbuildingasmalldarkroomtimerapplication,asIlearnAndroidandjava.Endedupusing

I have been building a small darkroom timer application, as I learn Android and java.
Ended up using CountDownTimer, as it does most of the work for me. :{)
However, I ran into what looks like an error in the class.

当我学习Android和java时,我一直在构建一个小的暗室计时器应用程序。使用CountDownTimer结束,因为它为我完成了大部分工作。 :{}但是,我遇到了类中的错误。

My initial structure used the onTick() callback to decrement my time counter, and update the time-remaining display. If I set it up for example:

我的初始结构使用onTick()回调来减少我的时间计数器,并更新剩余时间显示。如果我将其设置为例如:

            new CountDownTimer(60000, 100) {

                 public void onTick(long millisUntilFinished) {
                     mDisplayTime.setText(String.valueOf(millisUntilFinished)/1000);
                     timeTenths -= 1;
                     updateDisplay();
                 }

                 public void onFinish() {
//                   mDisplayTime.setText("Done!");
                 }
              }.start();

The total timeout (60 seconds) is spot on, within half a second by my stopwatch.
However, the displayed count stops with 3.0 seconds on the clock.
Experimenting with it, I found a consistent 5% "shortage" in onTick() events.
I could change the second parameter to 950 milliseconds, but that's an ugly kludge...

我的秒表在半秒内完成超时(60秒)。但是,显示的计数在时钟上停止了3.0秒。通过试验,我在onTick()事件中发现了一致的5%“短缺”。我可以将第二个参数更改为950毫秒,但这是一个丑陋的kludge ......

In the end, I changed the onTick() to display actual millisUntilFinished, which is fine, and eliminates my counter as well.

最后,我更改了onTick()以显示实际的millisUntilFinished,这很好,并且也消除了我的计数器。

Is this a known problem with CountDownTimer()?

这是CountDownTimer()的已知问题吗?

Dave

1 个解决方案

#1


0  

Before calling Google, have you done checking using LogCat? Namely in your onTick method you might want to debug what millisUntilFinish brings you and not only rely on TextView. Also, unless I understood something incorrectly, you might have to consider onFinish() your final 'tick'.

在致电Google之前,您是否使用LogCat进行了检查?也就是在你的onTick方法中,你可能想要调试millisUntilFinish给你带来的东西,而不仅仅是依赖TextView。另外,除非我理解错误,否则你可能不得不考虑onFinish()你最后的'tick'。


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • Python中的PyInputPlus模块原文:https ... [详细]
  • C++ STL复习(13)容器适配器
    STL提供了3种容器适配器,分别为stack栈适配器、queue队列适配器以及priority_queue优先权队列适配器。不同场景下,由于不同的序列式 ... [详细]
author-avatar
凌子的夏天_952
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有