如何获得Android手机和应用程序的日常使用?

时间:2017-12-18 09:49:34

标签: android

我想知道用户使用Android手机的时间。手机可能会在一天内多次启动,因此SystemClock.uptimeMillis()可能无法处理此案件。

有没有办法读取系统日志以了解时间戳系统启动和时间戳系统关闭?或者我需要BroadcastReceiver来捕获BOOT_COMPLETESHUT_DOWN事件并写入存储空间?

1 个答案:

答案 0 :(得分:0)

我建议您使用在BOOT_COMPLETE触发的BroadcastReceiver创建一个应用并启动一项服务,在该服务中您可以获得系统时间(让我们说X)。另一个BroadcastReceiver将由SHOT_DOWN触发,并将消息(通过Binder或其他方法)发送到正在运行的服务,再次获取系统时间(让我们说Y)并在SharedPreferences中保存它们之间的差异( YX)。

通过这种方式,您可以轻松了解设备所用的时间(最多纳秒)。

请注意,您没有在BroadcastReceiver中执行任何长时间运行的进程,而是从它启动服务。服务流程具有更高的优先级,不会被Android操作系统杀死。另外,我已经读过BroadcastReceivers在被系统破坏之前有一些时间限制(大约10秒)。