当我的应用程序关闭时,我需要在后台运行一个计时器,但我一直在阅读这是不可能的。我知道我可以在后台运行它约10分钟,但我需要的远不止于此(至少2小时)。
我想知道是否有办法通过在应用程序关闭时保存计时器值,当前时间,在重新打开时检索它们,并将它们与当前时间进行比较来获得差异。然后,我可以重新启动计时器并将值一起添加。
有人对我如何做到这一点有任何建议吗?
答案 0 :(得分:5)
正确的方法是保持定时器正在运行的错觉,而不是实际保持它运行。这有两个方面:
在应用程序离开前台之前,它应该保存有关计时器的信息(例如,如果您正在计时,计时器开始的时间或计时器应该停止的时间,如果您是'重新计数)。您可以使用各种不同的技术将这些信息(例如plist,keyed archiver,Core Data等)保存在持久存储中。
然后当应用程序再次启动时,检查保存的时间并重新构建UI以从适当的状态再次启动计时器。
如果你倒计时一段时间(即你想让用户知道什么时候到达特定的时间点,即使应用程序没有运行),你也可以使用本地通知。请参阅Local and Remote Notification Programming Guide,重点关注本地通知。