我无法在 iOS 的后台获取数据
Posted
技术标签:
【中文标题】我无法在 iOS 的后台获取数据【英文标题】:I can't fetch data in background in iOS 【发布时间】:2016-09-07 03:29:51 【问题描述】:当我在 Xcode 的 Debug 选项卡中使用 Simulate Background Fetch 时,我的应用程序执行了预期的操作,但是,当应用程序在我的手机上运行时,没有任何效果。
以前有人遇到过这种情况吗?你是怎么解决的?
我目前使用的是 Swift 2.2 和 Xcode 7.3
【问题讨论】:
【参考方案1】:您是否在运行模式下为 Launch due to a Background Fetch Event
编辑了架构
ios Background Fetch Not Working Even Though Correct Background Mode Configured
【讨论】:
感谢您的帮助,但是当我这样做时,代码会被执行,但只有一次。当我运行它安装在我的 iPhone 上的应用程序时,代码永远不会被执行。【参考方案2】:iOS 不允许任何应用程序在后台运行,除非应用程序要求它,并且它只允许它运行 10 分钟以注册后台执行:
- (void)applicationDidEnterBackground:(UIApplication *)application
UIBackgroundTaskIdentifier identifier;
identifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^
[[UIApplication sharedApplication] endBackgroundTask:identifier];
];
【讨论】:
我不明白你的回答。我已经启用了必要的后台模式,并且我还实现了 func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) 方法。我还需要什么? 你需要告诉iOS你想要后台执行,设置模式不是必须的,你必须明确要求它。以上是关于我无法在 iOS 的后台获取数据的主要内容,如果未能解决你的问题,请参考以下文章
iOS 中的后台获取和后台传输以在后台下载数据 (JSON)