android 定义date对象,如何从Date对象设置Android Chronometer基准时间?

在Android开发中,遇到一个问题:尝试使用Date对象作为计时器的基值,但发现计时器的基值与Date对象的毫秒值不一致。当使用SystemClock.elapsedRealtime()时,计时器正常工作,而使用过去日期设置基值时,计时器显示异常。问题在于计时器的基值应为自启动以来的经过时间,而非绝对时间。解决方案可能是确保使用适当的时钟源来初始化计时器。
摘要由CSDN通过智能技术生成

从特定时间开始计时器我遇到了问题.

有一个Date对象,我希望我的计时器从:

Date d = new Date(); //now, just for example

chronometer.setBase(d.getTime()); //long value of d

Log.d("Date: " , "d.getTime() time is [" + d.getTime() +"]");

Log.d("Chron: " , "chronometer.getBase() is [" + chronometer.getBase() +"]");

//let's print out elapsedRealtime from official sample

Log.d("Chron: " , "SystemClock.elapsedRealtime() is [" + SystemClock.elapsedRealtime() +"]");

输出:

06-02 13:35:23.025: D/Date:(928): d.getTime() time is [1338644123032]

06-02 13:35:23.037: D/Chron:(928): chronometer.getBase() is [1338644123032]

06-02 13:35:23.037: D/Chron:(928): SystemClock.elapsedRealtime() is [11624388]

实际上,为什么这个长时间值不同(11624388和1338644123032)?

当我从基座开始我的天文台时

chronometer.setBase(SystemClock.elapsedRealtime());

– 它总是工作正常(“00:00”和上升)

但是当我尝试从过去的日期(昨天)开始设置日期时:

chronometer.setBase(yesterday.getTime());

– 它显示“00:0(”并且每秒更新最新的字符“”,“*”,“/”和其他

你能否告诉我如何将计时器基座设置为Date对象?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值