自首次启动以来的时间
我正在开发一个Android应用程序,并遇到了确定系统首次启动时间的问题。我的意思是我需要测量从设备首次启动已经经过了多少时间。
我知道通过监听ACTION_BOOT_COMPLETED并在共享首选项中保存任何内容的解决方案,但我需要另一种解决方案,因为这个解决方案在某些情况下不起作用。也许有任何系统属性?
用例(摘自讨论))
- 我从服务器收到的每个文件的文件名都包含一个时间戳
System.currentMillis()
- 我比较这些时间戳,以确定哪个文件是最新的。
- 现在,用户提前几个月更改系统时间。
- 我仍然能够确定用户更改系统时间后下载的最新文件。
- 现在,用户将时间更改回原始设置。
- 在比较时间戳时,在步骤 4 上下载的文件始终胜出。
解决此问题的银弹将是自首次启动(恢复出厂设置后)算数秒的时间戳。就像每次启动后没有重置一样。不幸的是,到目前为止的答案告诉我们,这个银弹并不存在。SystemClock.elapsedRealtime()
但是,许多答案显示了如何解决此问题的各种选择。OneWorld123评论了每个答案,以及如何满足他的需求。