当iPhone变为后台状态时,dispatch_time如何工作?

时间:2016-12-06 03:22:30

标签: swift grand-central-dispatch

    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)

使用此方法并按下iphone上的主页按钮时,延迟将不再有效或无效。相反,当回到我的应用程序时,关闭被认为是在“10秒”之后触发,只有在回到应用程序时才会发生。无论我是在1小时还是10秒后回到应用程序。

如何在后台延迟之后使触发的关闭工作?

1 个答案:

答案 0 :(得分:0)

当你按下主页按钮时,你的应用程序将转换到后台状态,如果没有任何东西保持在该状态,它将转换到暂停状态,其中没有代码将运行。

让您的应用在后台运行的一种方法是使用后台任务。

let taskId = UIApplication.sharedApplication.beginBackgroundTask(..)

然后,您可以在代码运行后结束后台任务:

UIApplication.sharedApplication.endBackgroundTask(taskId)

这将允许应用程序返回暂停状态。