dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(delay * Double(NSEC_PER_SEC))
),
dispatch_get_main_queue(), closure)
当使用此方法并按 iPhone 上的主页按钮时,延迟将不再起作用或有效。相反,当返回我的应用程序时,发生的情况是,本应在“10 秒”后触发的关闭只会在返回应用程序时发生。不管我是在 1 小时还是 10 秒后返回应用程序。
如何在后台延迟后使触发的关闭工作?
最佳答案
当您按下主页按钮时,您的应用程序将转换为后台状态,如果没有任何东西使其保持在该状态,它将转换为挂起状态,在该状态下不会运行任何代码。
让应用程序在后台运行的一种方法是使用后台任务。
让taskId = UIApplication.sharedApplication.beginBackgroundTask(..)
您可以在代码运行后结束后台任务:
UIApplication.sharedApplication.endBackgroundTask(taskId)
这将允许应用返回暂停状态。
关于swift - 当iPhone进入后台状态时dispatch_time如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40987299/