即使应用程序未运行,我也想在后台下载数据。可能吗?我尝试使用后台提取,但它不起作用。请参考下面的代码:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
UIApplication.shared.applicationIconBadgeNumber = 9
}
当应用程序正在运行时会调用它,但在应用程序被杀死时不会调用它
不幸的是,在应用程序停用或在后台运行后,后台提取最多工作 3 分钟。除了VOIP,位置,音频..等
您可以做的是"根据后端服务器中发生的特定事件">向您的应用程序发送远程推送通知,以便用户与其交互并将您的应用程序置于前台。
一旦应用程序加载到前台,您就可以添加具有选择器功能的观察者,以viewWillAppear
开始获取所需的数据。
NotificationCenter.default.addObserver(self, selector:#selector(applicationWillEnterForeground(_:)), name:NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
选择器功能:
func applicationWillEnterForeground(_ notification: NSNotification) {
print("Fetch data")
}
然后在viewWillDisappear
中删除观察器:
NotificationCenter.default.removeObserver(self)