我正在执行的帖子可能要花几秒钟才能回来,以及启用后台模式的方法。我想弄清楚应用程序是否在等待帖子返回时进入后台,我能以某种方式获得响应吗?
let bgSessionConfig = URLSessionConfiguration.background(withIdentifier: identifier)
bgSessionConfig.sharedContainerIdentifier = "myid"
backgroundSessionManager = SessionManager(configuration: bgSessionConfig)
基本上,如果在后台,下面的completionHandler是否会被调用?
sessionManager.request(url, method: .post, parameters: dataParameters, encoding: parameterEncoding, headers: finalHeaders)
.validate()
.responseJSON(queue: self.dispatchQueue, completionHandler: {response in
func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { }
答案 0 :(得分:0)
handleEventsForBackgroundURLSession
中的完成处理程序不是“被调用”的东西。当urlSessionDidFinishEvents
到达时,您必须调用它。 “被称为”就是handleEvents
本身。您在这里的工作是指定后台URL会话(如果刚刚启动,则可能创建它),并立即为其指定委托。 那是通过普通的代表消息与您联系的方式。
如果不是 后台会话,您将收到某些委托消息;好了,现在当 是后台会话时,您将收到那些委托消息。