2016-02-18 85 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

歡迎........ –

相關問題