我刚刚在我的应用程序中添加了一个计时器,但它有一个奇怪的行为。它不是用数字来计算,而是用 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/