我需要能够编写后台任务。如果你愿意,可以执行一些简单的代码。虽然我不是GCD的专家,但我想知道:
如何跟踪它们并在需要时取消?
例如,我可以做这样的事情并执行任务。我在这里走了1分钟就可以了。
let backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: nil)
DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + 60) {
// Some action here
UIApplication.shared.endBackgroundTask(backgroundTaskIdentifier)
})
答案 0 :(得分:0)
您可以使用backgroundTimeRemaining
(文档here)打印给定会话的剩余时间。 Apple不保证这个时间会是什么,它会因电池电量,硬件,资源等而异,所以对于长时间运行的持久后台任务来说可能没什么用。您可能需要考虑background fetch API,尽管iOS同样会受到限制,但您无法完全控制它的运行时间。