我想将 backgroundTimeRemaining 延长 30 秒以上
根据苹果公司的说法
“该值仅在应用程序进入后台并在前台使用 beginBackgroundTask(expirationHandler:) 启动至少一项任务后才有效。
系统条件可能会通过调用到期处理程序或终止应用程序来提前结束后台执行。”
所以我尝试添加和编辑但它无法工作
这是我试过的
//MARK:- BeginBackgroundTask
func registerBackgroundTask() {
backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
self?.endBackgroundTask()
print(self!.beginTime)
}
//TODO: Add new background time ex: 60 sec
var backgroundTimeRemaining: TimeInterval {
get{
return 60
}
}
assert(backgroundTask != .invalid)
}
//MARK:- EndBackgroundTask
func endBackgroundTask() {
print("Background task ended.")
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = .invalid
}
最佳答案
backgroundTimeRemaining
对您的应用程序提供信息。该应用程序不控制系统给它多少时间。您可以请求一些后台时间以完成一些用户请求的操作,您可能会收到它,但您无法控制多少时间。您将需要重新设计以不需要这个。beginBackgroundTask
点是标记有限长度的事件,如果应用程序要在中间进入后台,那么多花几秒钟来完成会很有用。例如,如果您在 willEnterBackground
中启动后台任务,或者您不是在调用平衡 endBackgroundTask
及时,您可能正在滥用系统,并且系统往往根本不给您后台时间。
见 Advances in App Background Execution获取 Apple 关于后台执行的最新指南。
关于ios - 如何延长 'backgroundTimeRemaining' 的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59802712/