2016-02-18 54 views
6

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

+0

希望这可以帮助你http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial –

+0

我认为实现这一目标的唯一方法是使用[PushKit](https: //developer.apple.com/library/prerelease/ios/documentation/NetworkingInternet/Reference/PushKit_Framework/index.html),有一个关于它的问题[这里](http://stackoverflow.com/questions/19068762/will -ios推出-MY-APP-到最底,如果-IT-是,强制退出由这用户)。 – Wez

+0

使用推送通知重新启动已终止的应用程序。 –

回答

19

在用户在多任务UI中杀死它后,背景获取不会发生在您的应用中。这是设计。

看看Apple's documentation是提到:

应用程序支持后台执行可以由系统 来处理传入事件重新启动。如果一个应用程序被终止以任何理由 比强制用户退出等它,系统将启动该应用程序...

在大多数情况下,系统不后,他们重新启动应用程序强制 由用户退出。一个例外是位置应用程序,它在iOS 8和 之后在被用户强制退出后重新启动。但是,在其他 的情况下,用户必须明确启动应用程序或重新启动设备,然后系统才能将应用程序自动启动到 后台。

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

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

+0

是否有任何可能性在应用终止后在ios 10 swift 3.0中执行代码? –

+0

@PatelJigar编号iOS 10以这种方式表现与iOS 9和8相同。再一次,这是设计。 – Alex

+0

ohk谢谢@alex –

4

在用户将应用程序从后台关闭后,背景获取不会在您的应用中更新。这是不可能的

+0

感谢您的帮助 – Garry

+0

欢迎........ –

相关问题