gpt4 book ai didi

ios13 - UIApplication.shared.beginBackgroundTask 不适用于 iOS 13

转载 作者:行者123 更新时间:2023-12-03 14:48:31 28 4
gpt4 key购买 nike

UIApplication.shared.beginBackgroundTask 不适用于 iOS 13。是否有任何替代方法可以在 iOS 13 上实现长时间运行的后台任务?此外,它在 iOS 12 及以下版本上完美运行。

当应用程序进入后台时,它会在 2 分钟内终止,而我希望它在后台继续几个小时,因为我们正在后台进行一些处理。

下面是我使用的代码,这样当我的应用程序在后台时,它可以获得额外的执行时间。我们需要额外的执行时间,因为我们定期将当前位置发送到服务器。

/// Register background task. This method requests additional background execution time for the app
private func registerBackgroundTask() {
DispatchQueue.global().async {
self.backgroundTask = UIApplication.shared.beginBackgroundTask(withName: "BgTask", expirationHandler: {
// Ends long-running background task
self.endBackgroundTask()
})
}
}

/// Ends long-running background task. Called when app comes to foreground from background
private func endBackgroundTask() {
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = UIBackgroundTaskInvalid
}

最佳答案

它工作得很好。根据定义,它应该将您的应用程序的后台执行时间延长几分钟,以便您完成已启动的任务,如果没有正确完成,这可能对您的应用程序有害。以前是10分钟,现在是3分钟。实际上我认为它缩短到 30 秒,根据我在网上找到的最新文章来看

因此,这绝对不是满足您需求的正确工具。试试看 URLSessionConfiguration.background(withIdentifier:)但要小心,因为它有很多风险和一些错误。

此外,请在互联网上搜索 Dropbox 后台位置更新,了解 Dropbox 如何解决后台限制。

祝你好运

关于ios13 - UIApplication.shared.beginBackgroundTask 不适用于 iOS 13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58265838/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com