我想知道用户使用Android手机的时间。手机可能会在一天内多次启动,因此SystemClock.uptimeMillis()
可能无法处理此案件。
有没有办法读取系统日志以了解时间戳系统启动和时间戳系统关闭?或者我需要BroadcastReceiver
来捕获BOOT_COMPLETE
和SHUT_DOWN
事件并写入存储空间?
答案 0 :(得分:0)
我建议您使用在BOOT_COMPLETE
触发的BroadcastReceiver创建一个应用并启动一项服务,在该服务中您可以获得系统时间(让我们说X)。另一个BroadcastReceiver将由SHOT_DOWN
触发,并将消息(通过Binder或其他方法)发送到正在运行的服务,再次获取系统时间(让我们说Y)并在SharedPreferences中保存它们之间的差异( YX)。
通过这种方式,您可以轻松了解设备所用的时间(最多纳秒)。
请注意,您没有在BroadcastReceiver中执行任何长时间运行的进程,而是从它启动服务。服务流程具有更高的优先级,不会被Android操作系统杀死。另外,我已经读过BroadcastReceivers在被系统破坏之前有一些时间限制(大约10秒)。