我正在尝试通过后台获取从 url 获取数据。我的函数尝试获取数据,如果有新数据,它会发送本地通知。当我最小化应用程序时,后台获取会在大约 10 - 20 分钟后开始工作。但是当我杀死该应用程序(双击主页按钮并关闭应用程序)时,它不起作用。我等了大约1个小时,但没有成功。我正在 Android 中使用后台服务,它运行成功。有没有办法从 url 获取数据并在应用程序关闭时发送本地通知?我正在使用 Xcode 6 和 swift 1.2
用户在多任务 UI 中终止应用程序后,后台获取将不会在您的应用程序中发生。这是设计使然。
看一眼苹果的文档 https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH4-SW7其中提到:
支持后台执行的应用程序可能会被系统重新启动
处理传入的事件。如果应用程序因任何原因终止
除了用户强制退出之外,系统还会启动该应用程序...
and
大多数情况下,系统在强制应用程序后不会重新启动应用程序
由用户退出。位置应用程序是一个例外,它在 iOS 8 和
稍后在用户强制退出后重新启动。其他
但在某些情况下,用户必须显式启动应用程序或重新启动应用程序
设备之前应用程序可以自动启动到
系统后台。
正如您在文档中注意到的,如果应用程序被强制终止,则只有 1 个例外情况会重新启动:通过使用位置服务。不幸的是,这不适用于您。
此外,您无法检测应用程序是否被用户强制终止。检查这个堆栈溢出答案 https://stackoverflow.com/questions/7022357/distinguish-between-an-iphone-app-crashing-and-being-killed.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)