android - 以字符计数的计时器

标签 android

我刚刚在我的应用程序中添加了一个计时器,但它有一个奇怪的行为。它不是用数字来计算,而是用 CHARS 来计算! 示例:

00:00:00
00:00:0(
00:00:0)
00:00:0/
00:00:0*
00:00:0+
... LOOPS AFTER 10
00:00:00
00:00:0(
00:00:0)
00:00:0/
00:00:0*
00:00:0+

xml

        <Chronometer
            android:id="@+id/tracking_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@id/record_indicator"
            android:textColor="@color/tracking_time"
            android:textSize="14dip"
            android:textStyle="bold" />

创建时

        mTrackingTime = (Chronometer)this.findViewById(R.id.tracking_time);
        mTrackingTime.setOnChronometerTickListener(this);

开始

    mTrackingTime.setBase(System.currentTimeMillis());
    mTrackingTime.start();

回调

    @Override
    public void onChronometerTick(final Chronometer chronometer) {
    }

最佳答案

这些字符在基数大于 SystemClock.elapsedRealtime() 时出现,这是自启动以来的毫秒数。

它显示这个参数的结果:

SystemClock.elapsedRealtime() - base

默认,或者如果你调用:

chronometer.setBase(SystemClock.elapsedRealtime());

然后计时器将从 00:00

开始

如果你调用:

chronometer.setBase(SystemClock.elapsedRealtime() - 10000);

然后计时器将从00:10

开始

如果你调用:

chronometer.setBase(SystemClock.elapsedRealtime() + 10000);

然后 chronometer 将绘制垃圾 10 秒,然后从 00:00

开始

所以如果你调用:

chronometer.setBase(System.currentTimeMillis());

你应该期望看到垃圾大约 44 年,然后就没事了。

关于android - 以字符计数的计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13987508/

相关文章:

android - 如何减少 MPAndroidChart 显示数据所花费的时间?

android - Retrofit 2 和 okhttp 3 的缓存错误

android - 谷歌播放服务 : how to handle peers network disconnection?

java - ListView 项目打开新 Activity

Android 谷歌地图 API v2 路线就像谷歌地图应用程序

java - 我的代码中有一个第三方异步 block 。我怎么知道它什么时候结束?

android - 如何在 API 21 之前支持 `layout_columnWeight` 和 `layout_rowWeight`?

android - 如何删除android中的标题栏?

android - 读取安卓 MANIFEST.MF 文件

javascript - 如何使用phonegap localnotification插件清除通知栏上的项目