在线计时器,永远不会被破坏,并且应该保持离线运行

时间:2021-06-17 21:53:36

标签: java android android-studio service timer

在我的应用中,用户可以预订停车场的停车位。 我需要一个计时器来计算用户在停车场停车的时间。 即使设备关闭或未连接到互联网,计时器也应继续运行。 如果有人对此问题有解决方案或想法,这将对我有很大帮助,提前致谢。

2 个答案:

答案 0 :(得分:2)

让它保存应用程序关闭时的时间,并从应用程序重新打开时的当前时间中减去该时间,这将为您提供会话之间经过的秒数,您可以将其转换为分钟/小时/任何时间.

答案 1 :(得分:0)

在设备上使用 AlarmManager,但不要相信该时间是最终的真实来源,以防用户试图更改其系统时钟上的日期和时间以试图欺骗系统。

https://developer.android.com/training/scheduling/alarms?authuser=1

但请阅读有关打盹模式的警告。

<块引用>

当设备在打盹模式下空闲时不会触发警报。任何预定 警报将推迟到设备退出 Doze。如果你需要 确保您的工作即使在设备空闲时也能完成 有几种选择。 您可以使用 setAndAllowWhileIdle() 或 setExactAndAllowWhileIdle() 以保证警报会执行。 另一种选择是使用新的 WorkManager API,它是为 执行一次或定期的后台工作。更多 信息,请参阅使用 WorkManager 安排任务。

虽然该警告说 WorkManager 是另一种选择。我不认为 WorkManager 是 ready for your use case yet(尽管最终的计划是让 WorkManager 成为执行此操作的首选方式)。

相关问题