gpt4 book ai didi

java - 在 Android 绘制循环中以毫秒为单位查找当前时间的正确方法

转载 作者:行者123 更新时间:2023-11-30 09:18:02 25 4
gpt4 key购买 nike

我试图在我的 Android 应用程序的 Draw() 循环中尽可能多地摆脱对象创建,以最大限度地减少垃圾收集,但我在处理时间方面遇到了麻烦。我知道有两种获取当前时间的方法:

1) java.util.日历

long now = Calendar.getInstance().getTimeInMillis();

这工作正常,但是(据我所知)将 Calendar 对象设置为当前时间的唯一方法是调用 Calendar.getInstance(),并且每次调用 getInstance() 都会创建一个新的整数[].

2) android.text.format.Time

Time time = new Time();
time.setToNow();
long now = time.toMillis(true);

这可以在每次调用时无需实例化任何新对象来完成,但 setToNow() 似乎只精确到最接近的秒数。

如何在不在 Draw 循环中引发垃圾收集的情况下获取当前系统时间(精确到毫)?

最佳答案

我怀疑你只是在寻找 System.currentTimeMillis() .不过,我个人会将此静态依赖项提取到 Clock 接口(interface):

public interface Clock {
long currentTimeMillis();
}

然后您可以拥有一个 SystemClock 实现 - 以及一个用于测试目的的假实现。如果您不对这段代码进行单元测试,那么它就不那么重要了。

另请注意,如果您要测量已用 时间,您应该考虑使用 System.nanoTime()相反。

关于java - 在 Android 绘制循环中以毫秒为单位查找当前时间的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726244/

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