适合用于后台获取?
Posted
技术标签:
【中文标题】适合用于后台获取?【英文标题】:Appropriate use for background fetch? 【发布时间】:2019-12-02 13:58:59 【问题描述】:在我的应用程序中,根视图控制器调用多个 API 来获取数据,然后将其显示在集合视图中。
我可以在这里使用后台抓取,提前获取API数据,这样当用户启动应用程序时,内容已经可用并存储在数据库中?
如果由于某种原因不可用(假设后台获取时间已过期或尚未触发),那么无论如何我都可以从 API 获取它们。
【问题讨论】:
【参考方案1】:是的,这是应用后台提取的情况。
直到并包括 ios12,在您的 AppDelegate
类中使用 application(_:performFetchWithCompletionHandler:)
方法。当 iOS 根据用户使用应用程序的方式确定它应该运行时,此代码将运行。
您可能需要从应用委托中获取对相关视图控制器的引用并调用您需要的方法。
对于iOS13及以上,此方法替换为BGAppRefreshTask
。
这些任务必须在应用启动时注册,使用BGTaskScheduler
。
对于这两种方法,您必须在应用的权利中启用获取后台模式。
【讨论】:
@Matrix 没问题。我自己只用过第一种方式,如有需要可以举一些例子。从应用委托中获取根视图控制器应该不会太难。我自己还没有使用过BGAppRefreshTask
方法。以上是关于适合用于后台获取?的主要内容,如果未能解决你的问题,请参考以下文章