运行 应用程序关闭时 'background' 中的计时器
Run timer in 'background' when app is closed
当我的应用程序关闭时,我需要 运行 在后台设置一个计时器,但我一直在读到这是不可能的。我知道我可以 运行 它在后台运行约 10 分钟,但我需要的时间远不止于此(最多至少 2 小时)。
我想知道是否有一种方法可以通过在应用程序关闭时保存计时器值和当前时间,在重新打开时检索它们,并将它们与当前时间进行比较以获得差异.然后我可以重新启动计时器并将值加在一起。
有人对我如何做到这一点有任何建议吗?
正确的做法是保持定时器是 运行 的错觉,而不是实际保持它 运行。这有两个方面:
在应用离开前台之前,它应该保存有关计时器的信息(例如,如果您正在计时,则计时器开始的时间;如果您正在计时,则计时器应该停止的时间。重新倒计时)。您可以使用各种不同的技术将此信息(例如 plist、键控归档器、核心数据等)保存在持久存储中。
然后当应用程序再次启动时,检查保存的时间并重建 UI 以从适当的状态再次启动计时器。
如果您正在倒计时某个时间(即您想让用户知道何时到达了特定的时间点,即使该应用程序不是 运行 ),您可以使用本地通知。查看Local and Remote Notification Programming Guide,关注本地通知。
当我的应用程序关闭时,我需要 运行 在后台设置一个计时器,但我一直在读到这是不可能的。我知道我可以 运行 它在后台运行约 10 分钟,但我需要的时间远不止于此(最多至少 2 小时)。
我想知道是否有一种方法可以通过在应用程序关闭时保存计时器值和当前时间,在重新打开时检索它们,并将它们与当前时间进行比较以获得差异.然后我可以重新启动计时器并将值加在一起。
有人对我如何做到这一点有任何建议吗?
正确的做法是保持定时器是 运行 的错觉,而不是实际保持它 运行。这有两个方面:
在应用离开前台之前,它应该保存有关计时器的信息(例如,如果您正在计时,则计时器开始的时间;如果您正在计时,则计时器应该停止的时间。重新倒计时)。您可以使用各种不同的技术将此信息(例如 plist、键控归档器、核心数据等)保存在持久存储中。
然后当应用程序再次启动时,检查保存的时间并重建 UI 以从适当的状态再次启动计时器。
如果您正在倒计时某个时间(即您想让用户知道何时到达了特定的时间点,即使该应用程序不是 运行 ),您可以使用本地通知。查看Local and Remote Notification Programming Guide,关注本地通知。