gpt4 book ai didi

java - android - System.currentTimeMillis() 没有按预期工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:41:21 24 4
gpt4 key购买 nike

我使用 System.currentTimeMillis() 来节省用户启动 Activity 的时间。

public class TimeStamp {
protected long _startTimeMillis = System.currentTimeMillis();

public String getStartTime() {
return new Time(_startTimeMillis).toString();
}

该类在 Activity 启动时实例化并且 getStartTime() 返回正确的时间。我还尝试获取 Activity 开始后耗时。

public String getElapsedTime() {
return new Time(System.currentTimeMillis() - _startTimeMillis).toString();
}

使用模拟的 android 设备(android 4.0.3),这工作得很好。但是当我在我的真实 android 设备 (android 4.0.3) 上部署应用程序时,getElapsedTime() 从一个额外的小时开始,然后正常计数。所以在我的真实设备上,getElapsedTime() 将在 Activity 开始后返回“01:00:01”,但它应该返回“00:00:01”。

你知道为什么会这样吗?

最佳答案

您应该使用 SystemClock.uptimeMillis()

uptimeMillis() 是从系统启动后以毫秒计算的,并且保证是单调的,而 System.currentTimeMillis() 不是因为用户或应用程序可以随时更改它。此外,通常会启用自动时间同步,可以随时更改时间。

关于java - android - System.currentTimeMillis() 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com