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

时间:2017-05-22 12:57:57

标签: ios swift

即使应用未运行,我也希望在后台下载数据。可能吗? 我尝试过使用后台提取,但它无法正常工作。 请参考以下代码:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

    UIApplication.shared.applicationIconBadgeNumber = 9
}

在应用程序运行时调用它,但在应用程序被杀死时调用

1 个答案:

答案 0 :(得分:0)

不幸的是,在应用程序停用后或后台运行时,后台获取最多可以工作3分钟。除了VOIP,位置,音频......

您可以做的是发送远程推送通知"根据您的后端服务器中发生的特定事件" 到您的应用,以便用户与之互动并获取您的app到前台。

只要将应用程序加载到前台,您就可以在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)