我有一个管理器应用程序,它可以为另一个已关闭的应用程序保持保留状态一段时间。管理器应用程序使用System.nanoTime()
来计算保留时间,但现在我需要保存和恢复此管理器应用程序的状态(例如,保存和恢复保留会话并再次计算时间),因此System.nanoTime()
不再适用:在JVM\PC重新启动之间总结System.nanoTime()
以维护全局时间线不是一个好主意。因此,我切换到RuntimeMXBean
,它的getUptime()
方法用于此目的。但现在我有另一个麻烦:我的管理器应用程序关闭的时间,没有办法知道它关闭了多久。因此,如果我有,例如,保留60分钟,应用程序将保留60分钟,如果管理器应用程序是启动和运行。如果我关闭我的PC 10分钟,这10分钟将丢失,当我再次运行管理器应用程序,它将恢复其状态,并计数保留为60分钟。我正在寻找知道时间的方法,因为在过去的某个时间点,直到当前时间,不能通过更改系统或BIOS时钟进行修改。重要说明:管理器应用程序无法访问Web,因此无法使用NTP。有什么方法可以做到这一点吗?
2条答案
按热度按时间kxxlusnw1#
您应该存储两个信息:1)系统时间(如果您无法连接到时间服务器,则为您的BIOS时间)和2)保留到期时间。
这样,检查预约是否过期的方法将获得当前时间,并将其与保存的时间和过期时间进行比较。
h9a6wy2h2#
嗯,情况看起来不太好。考虑到你不允许连接到网络,或者安装访问外部可靠时间源的硬件,也许你能做的最好的事情就是依靠一些值得信任的人。
“机箱打开”开关连接到主板上的针脚。设置BIOS选项以使用“机箱打开”功能。当机箱打开时,主板会检测到它并记住它。当计算机启动时,会显示一个警报。可能需要密码来重置状态。
如果你用的是带锁的箱子,请找锁匠把锁换掉。很多箱子锁都用同一把钥匙,而且很容易弄到。它们也很容易被撬。