杀死应用后,后台获取功能无效

Mer*_*sal 11 background-process ios swift background-fetch

我正在尝试通过后台获取从url获取数据.我的func尝试获取数据,如果有新数据,它会发送本地通知.当我最小化应用程序时,后台提取工作大约10 - 20分钟后工作.但是,当我杀了应用程序(双击主页按钮并关闭应用程序)它不起作用.我等了大约1个小时但是没用.我在android中使用后台服务,它正在成功运行.有没有办法从网址获取数据并在应用关闭时发送本地通知?我正在使用Xcode 6和swift 1.2

Ale*_*lex 25

用户在多任务UI中将其杀死后,您的应用中不会发生后台提取.这是设计的.

看看Apple提到的文档:

支持后台执行的应用程序可以由系统重新启动以处理传入事件.如果应用程序因用户强制退出而导致的任何原因被终止,系统将启动应用程序...

在大多数情况下,系统在用户强行退出后不会重新启动应用程序.位置应用程序是一个例外,它在iOS 8及更高版本中被用户强行退出后重新启动.但是,在其他情况下,用户必须明确启动应用程序或重新启动设备,然后系统才能将应用程序自动启动到后台.

正如您在文档中注意到的那样,只有当应用程序被强制终止时才重新启动,只有一个例外:使用位置服务.不幸的是,这不适用于您.

此外,您无法检测应用程序是否被用户强行杀死.检查此StackOverflow答案.