如何延长“backgroundTimeRemaining”更多时间?

Pix*_*ode 5 xcode background-process ios swift ios13

根据 Apple 的说法,我想将 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
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*ier 2

backgroundTimeRemaining对您的应用程序提供信息。该应用程序不控制系统给它多少时间。您可以请求一些后台时间来完成某些用户请求的操作,并且您可能会收到它,但您无法控制多少时间。您将需要重新设计以不再需要此功能。

其目的beginBackgroundTask是标记有限长度的活动,如果应用程序要在中间进入后台,那么多花几秒钟来完成会很有用。例如,如果您正在启动后台任务,或者您没有及时willEnterBackground调用平衡,则您可能误用了系统,并且系统往往根本不给您后台时间。endBackgroundTask

请参阅应用程序后台执行的进展,了解 Apple 关于后台执行的最新指南。