12

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

4

2 回答 2

25

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

查看Apple 的文档,其中提到:

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

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

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

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

于 2016-02-18T10:47:48.633 回答
4

用户从后台杀死应用程序后,后台获取将不会在您的应用程序中更新。这不可能

于 2016-02-18T10:51:58.137 回答