我想從後臺抓取的url獲取數據。我的func嘗試獲取數據,如果有新數據,它會發送本地通知。在我將應用程序最小化的10到20分鐘後,後臺抓取工作。但是,當我殺了應用程序(雙擊主頁按鈕,關閉應用程序),它不起作用。我等了大約1小時,但沒有奏效。我在android中使用後臺服務,它正在成功。有什麼方法可以從應用程序關閉時從url獲取數據併發送本地通知?我正在使用Xcode 6和Swift 1.2殺死應用程序後臺抓取工作不正常
回答
在用戶在多任務UI中殺死它後,背景獲取不會發生在您的應用中。這是設計。
看看Apple's documentation是提到:
應用程序支持後臺執行可以由系統 來處理傳入事件重新啓動。如果一個應用程序被終止以任何理由 比強制用戶退出等它,系統將啓動該應用程序...
和
在大多數情況下,系統不後,他們重新啓動應用程序強制 由用戶退出。一個例外是位置應用程序,它在iOS 8和 之後在被用戶強制退出後重新啓動。但是,在其他 的情況下,用戶必須明確啓動應用程序或重新啓動設備,然後系統才能將應用程序自動啓動到 後臺。
正如您在文檔中注意到的那樣,只有一個例外,如果應用程序被強制殺死,則會重新啓動:使用位置服務。不幸的是,這並不適用於你。
此外,您無法檢測到應用程序是否被用戶強制殺死。檢查這個StackOverflow answer。
是否有任何可能性在應用終止後在ios 10 swift 3.0中執行代碼? –
@PatelJigar編號iOS 10以這種方式表現與iOS 9和8相同。再一次,這是設計。 – Alex
ohk謝謝@alex –
- 1. 後臺抓取工作不正常
- 2. iphone殺死後臺應用程序
- 3. 應用程序在後臺工作時無法正常工作
- 4. Swift UIApplication.shared.open從後臺應用程序不能正常工作
- 5. 殺死後臺進程
- 6. iOS殺死了一分鐘內在後臺工作的CallKit VoIP應用程序
- 7. 殺死應用程序並啓動後,它在後臺運行
- 8. Android殺死後臺進程並關閉應用程序
- 9. 應用程序殺死Android後恢復
- 10. iOS可以在後臺中殺死一個應用程序嗎?
- 11. Android 2.3X將應用程序殺死後臺
- 12. 殺死在後臺運行的應用程序android
- 13. 殺死應用程序
- 14. 應用程序不在後臺工作
- 15. 後臺應用程序不工作
- 16. ios app在殺死後在ios9.3中啓動後臺後臺。但能正常工作在IOS 10
- 17. 如何正確殺死Android活動,這不是後臺進程
- 18. C# - 殺死進程無法正常工作
- 19. .destroy()不工作查殺應用程序
- 20. 二郎:殺死在後臺
- 21. Android:殺死後臺活動
- 22. 如何殺死/停止後臺線程?
- 23. 如何殺死pm2 - 無後臺進程
- 24. 進程不工作的殺死方法
- 25. Chrome擴展程序後臺腳本不能正常工作
- 26. iOS在一段時間後將在後臺殺死應用程序
- 27. 即使在殺死應用程序後,android仍在運行後臺服務
- 28. 殺死一個Word.Basic應用程序,而不會殺死Word.Application主進程
- 29. SharedPreferences在殺死應用程序後不見了
- 30. 在前臺工作正常的進程在後臺無法正常工作
希望這可以幫助你http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial –
我認爲實現這一目標的唯一方法是使用[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
使用推送通知重新啓動已終止的應用程序。 –