如何在终止时运行swift应用程序?

时间:2017-02-28 12:14:20

标签: ios swift web-services background

我想在本地数据库sqlite中存储一些信息,如果互联网断开连接,或者甚至应用程序终止时。你对这份工作有什么建议?如何识别这些事件?

***当应用程序终止时,不是应用程序即将终止

2 个答案:

答案 0 :(得分:0)

  

Apple终止应用时不允许任何操作

您可以在应用终止之前完成您的操作。

UIApplicationDelegate有一个委托方法 - applicationWillTerminate,在您的应用即将终止时调用。

func applicationWillTerminate(_ application: UIApplication) {
    // Called when the application is about to terminate.
}

您可以在此方法的块中设置存储信息/数据的代码

对于iOS 8+的Internet连接,您可以在Web服务API调用期间检查Internet连接状态。如果没有互联网连接,Web服务API响应将出现此错误。您可以在错误代码= -1005

时执行操作
Error: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0x7ba8e5b0 {NSErrorFailingURLStringKey=, _kCFStreamErrorCodeKey=57, NSErrorFailingURLKey=, NSLocalizedDescription=The network connection was lost., _kCFStreamErrorDomainKey=1, NSUnderlyingError=0x7a6957e0 "The network connection was lost."}

答案 1 :(得分:0)

当任何应用程序在终止之前终止时,它会进入后台模式很短的时间,以下方法将在App Delegate类中执行: -

optional func applicationDidEnterBackground(_ application: UIApplication)

您可以编写脚本以将数据保存在本地数据库中。 如果网络状态正在发生变化,您也可以使用Reachability 获取通知。