我需要爲應用程序終止前應執行的應用程序(在Swift中)編寫一些代碼。它在appDelegate中使用appWillTerminate時不起作用,但它不在後臺,但我需要它在後臺或前臺終止時運行代碼。我該怎麼做 ??在後臺快速終止應用程序
0
A
回答
0
下面的策略可能會起作用,它比iOS更適合採用純Swift語言方法:每個類都可以覆蓋deinit
方法。每當類需要從堆中釋放時,在類被釋放之前調用de-initializer。這可能發生,比如班級超出範圍,並且沒有更多的保留數量。當您的應用終止時,這可能會發生在您的AppDelegate
。
0
你可以把你的代碼放在applicationDidEnterBackground中的方法beginBackgroundTaskWithName:expirationHandler:
。這種方法爲您的應用程序提供額外的時間來完成您需要完成的任務。更多的單證在這裏執行有限長度的任務:https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
0
如果應用程序是在後臺,並沒有任何任務執行的,則該應用程序處於暫停。 當應用程序處於暫停狀態時,終止應用程序將不會調用applicationWillTerminate。但是,您可以啓動後臺任務 或啓用後臺模式。 例如
func applicationDidEnterBackground(_ application: UIApplication) {
bgTask = application.beginBackgroundTask(withName: "MyTask") {
application.endBackgroundTask(self.bgTask!)
self.bgTask = UIBackgroundTaskInvalid
}
}
相關問題
- 1. 如何在終止時運行快速應用程序?
- 2. 快速終止應用程序時解析saveEventually失敗
- 3. 在後臺連續快速運行應用程序
- 4. 如何確定應用程序是在後臺還是終止?
- 5. 終止在後臺運行的應用程序
- 6. 強制後臺應用程序在iOS模擬器中終止
- 7. 終止C#控制檯應用程序
- 8. 如何在iphone中終止應用程序後運行後臺線程?
- 9. 即使在應用程序終止後ios 8定期後臺進程
- 10. 我的iPhone應用程序後臺進程在10分鐘後終止
- 11. 當應用程序終止時執行後臺任務
- 12. 當應用程序處於後臺時終止所有活動
- 13. 我想在幾分鐘後終止應用程序,而它在後臺運行
- 14. 如何在iOS中終止應用程序後在後臺繼續下載
- 15. 終止在特定時間後在後臺運行的應用程序?
- 16. Scotty應用程序終止後清理
- 17. 崩潰後終止應用程序
- 18. Android FusedLocationApi.requestLocation在後臺更新:停止應用程序終止時的IntentService
- 19. 後臺進程在其父進程終止時被終止?
- 20. 如何防止後臺線程中的異常終止應用程序?
- 21. 遠程推送當應用程序在後臺快速通知3
- 22. java快速應用程序
- 23. 線程不在delphi的控制檯應用程序中終止?
- 24. 當後臺應用程序停止BackgroundService
- 25. 三星「應用程序優化」功能在3天后終止了後臺應用程序
- 26. 後臺進程終止後的通知
- 27. 如何在關閉應用程序時在後臺運行快速應用程序?
- 28. 防止終止控制檯應用程序
- 29. 應用程序不終止
- 30. 終止應用程序
你需要執行哪些代碼?如果你只是想保存數據,這可以通過其他方式來完成。 –
appWillTerminate:如果應用程序在後臺並且無法調用它,則不會調用它。我會建議在applicationDidEnterBackground中編寫代碼:因爲之後沒有辦法調用appWillTerminate。但是,它又一次削弱了你想要完成的事情。如果是關於保存數據比applicationDidEnterBackground是要走的路。 – Netra