我能够使用Timer.periodic()成功地实现一个计数计时器。如果我在应用程序之间切换或在后台使用应用程序30秒,计时器的当前持续时间仍然准确。但是,如果应用程序在后台超过2分钟,当前持续时间是不准确的,实际上是延迟。就像应用程序的计时器在后台太长时间时会变慢。使用后台服务是解决这个问题的一种方法吗?还是应该在应用程序进入后台时存储持续时间的值,并在它恢复时获取它?希望得到一些建议。谢谢!
Timer.periodic()
polhcujo1#
操作系统可以在后台模式下停止您的应用。您必须从操作系统获得权限,才能使您的应用继续在后台模式下工作。例如,您可以在Xcode中设置以下后台模式之一:
但是你需要考虑一下你的用例,你不希望你的应用在后台模式下无缘无故地消耗设备内存和电池电量。如果您需要知道已经过去了多少时间,您可以随时在进入后台模式之前保存最后一个值,然后在应用唤醒时将其与系统时间进行比较。
1条答案
按热度按时间polhcujo1#
操作系统可以在后台模式下停止您的应用。您必须从操作系统获得权限,才能使您的应用继续在后台模式下工作。例如,您可以在Xcode中设置以下后台模式之一:
但是你需要考虑一下你的用例,你不希望你的应用在后台模式下无缘无故地消耗设备内存和电池电量。
如果您需要知道已经过去了多少时间,您可以随时在进入后台模式之前保存最后一个值,然后在应用唤醒时将其与系统时间进行比较。