如何在应用程序未运行时下载数据(应用程序被杀死)



即使应用程序未运行,我也想在后台下载数据。可能吗?我尝试使用后台提取,但它不起作用。请参考下面的代码:

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)

最新更新