我需要爲應用程序終止前應執行的應用程序(在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. 如何確定應用程序是在後臺還是終止?
- 3. 如何在iphone中終止應用程序後運行後臺線程?
- 4. 當應用程序終止時執行後臺任務
- 5. 當應用程序處於後臺時終止所有活動
- 6. Scotty應用程序終止後清理
- 7. 崩潰後終止應用程序
- 8. 後臺進程在其父進程終止時被終止?
- 9. 如何防止後臺線程中的異常終止應用程序?
- 10. 遠程推送當應用程序在後臺快速通知3
- 11. java快速應用程序
- 12. 線程不在delphi的控制檯應用程序中終止?
- 13. 當後臺應用程序停止BackgroundService
- 14. 三星「應用程序優化」功能在3天后終止了後臺應用程序
- 15. 如何在關閉應用程序時在後臺運行快速應用程序?
- 16. 防止終止控制檯應用程序
- 17. 應用程序終止
- 18. 終止應用程序
- 19. 停止後臺服務當應用程序轉到後臺
- 20. 如何在應用程序從後臺終止時獲取來電通知
- 21. 當應用程序被終止,服務不能在後臺工作
- 22. 如何避免iOS應用程序在後臺被太頻繁終止
- 23. ios應用程序,當應用程序在後臺運行加速度計
- 24. 如何在Android應用程序退出後終止進程?
- 25. 如何在c#控制檯應用程序中止時終止子進程?
- 26. 具有後臺支持的iOS應用程序在應用程序更新時是否終止?
- 27. 快速排序程序停止工作
- 28. 快速控制應用程序流程
- 29. 程序在後臺事件觸發時終止
- 30. Application.Exit()是否會終止後臺線程?
你需要執行哪些代碼?如果你只是想保存數據,這可以通過其他方式來完成。 –
appWillTerminate:如果應用程序在後臺並且無法調用它,則不會調用它。我會建議在applicationDidEnterBackground中編寫代碼:因爲之後沒有辦法調用appWillTerminate。但是,它又一次削弱了你想要完成的事情。如果是關於保存數據比applicationDidEnterBackground是要走的路。 – Netra