gpt4 book ai didi

iOS 在后台或应用程序激活时执行预定操作

转载 作者:行者123 更新时间:2023-11-28 05:36:43 25 4
gpt4 key购买 nike

我有 CoreData 模型,我想在凌晨 12 点更新。因此,即使应用程序可以识别新的一天即将到来并在凌晨 12 点更改数据模型中的某些内容,这也是一种情况。

最初的想法是:准备一个返回更新数据的函数。因此,在函数返回 smth 之前,我每次都会检查时间(两个日期之间的 NSDate 间隔),然后更新数据模型(如果是新的一天)。但为此目的的架构并不那么简单,它需要一些时间来准备我可以获得更新数据的单点,而且需要一些时间在后台更新 CoreData 模型,这也增加了这项任务的一些费用。

这个解决方案是否可以使用一些计时器,它会在凌晨 12 点更新数据,我不关心这种情况下的一致性,但我不喜欢每秒检查是否已经是凌晨 12 点的计时器. iOS 中是否有一些推送通知更新或一些调度程序管理器可以为我更新数据。还有一次我只想更新数据层,我不关心 UI 的一致性。如果一致性确实很重要,那么我想遵循最初的想法,单点检索数据。

因此,我可能需要一些调度程序管理器来达到这个目的,或者重写我如何获取数据的代码。

最佳答案

无法定期执行功能,即使应用程序已被用户关闭/终止也是如此。

即使应用程序在后台也能定期执行功能的最可靠解决方案是使用为特定时间间隔安排的推送通知(在您的情况下为每天午夜),这将唤醒应用程序并让它更新它的数据。但是,此解决方案有其缺点,因为您需要一个服务器来发送推送通知,并且用户设备需要连接到互联网。此外,推送通知不会唤醒应用,以防用户手动终止它。

对于您的特定问题,最好的解决方案是重构您的代码,使您拥有一个可用于检索数据的函数,因此该函数可以确保在某个时间间隔发生时更新数据自上次更新以来已通过。

关于iOS 在后台或应用程序激活时执行预定操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58420586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com