【问题标题】:How to run an swift app when Terminate?终止时如何运行快速应用程序?
【发布时间】:2017-02-28 12:14:20
【问题描述】:

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

***应用程序终止时,而不是应用程序将要终止时

【问题讨论】:

  • 你不能那样做。苹果不允许你。

标签: ios swift web-services background


【解决方案1】:

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

optional func applicationDidEnterBackground(_ application: UIApplication)

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

【讨论】:

    【解决方案2】:

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

    您可以在应用终止之前执行您的操作。

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

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

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

    对于 iOS 8+ 的 Internet 连接,您可以在 Web 服务 API 调用期间检查 Internet 连接状态。如果没有 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."}
    

    【讨论】:

    • 再次阅读问题,OP 说的是应用程序终止时,而不是应用程序将要终止时。
    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    相关资源
    最近更新 更多