我需要为应用程序终止前应执行的应用程序(在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