Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS后台任务将在前台完成?_Ios_Swift_Background - Fatal编程技术网

iOS后台任务将在前台完成?

iOS后台任务将在前台完成?,ios,swift,background,Ios,Swift,Background,若我使用此方法运行任务,但将应用程序保持在前台,当应用程序处于前台时是否会调用expirationHandler 每次我进入后台时,我都会使用它启动定位服务,但有时用户进入后台并立即返回应用程序,这会调用expirationHandler吗? func beginBackgroundTask(expirationHandler handler: (() -> Void)? = nil) -> UIBackgroundTaskIdentifier 文件说: 在应用程序剩余后台时间达到

若我使用此方法运行任务,但将应用程序保持在前台,当应用程序处于前台时是否会调用expirationHandler

每次我进入后台时,我都会使用它启动定位服务,但有时用户进入后台并立即返回应用程序,这会调用expirationHandler吗?

func beginBackgroundTask(expirationHandler handler: (() -> Void)? = nil) -> UIBackgroundTaskIdentifier
文件说:

在应用程序剩余后台时间达到0之前不久调用的处理程序。使用此处理程序清理并标记后台任务的结束。未能明确结束任务将导致应用程序终止。系统在主线程上同步调用处理程序,暂时阻止应用程序的暂停


似乎在前台模式下没有调用过期处理程序。经过很长时间的等待,我进入后台模式,然后在大约170秒后,所有先前报告的后台任务都会调用过期处理程序。

您能说得更清楚一点吗?你想达到什么目的?@AhmadF谢谢,我更新了描述如果我没有弄错,我们可能需要查看该方法的实现以进行判断,这取决于你在哪里调用
处理程序
。闭包是自包含的功能块,可以在代码中传递和使用,不能保证闭包代码应该在后台或前台运行,这取决于您对它的调用。可能对你的情况有帮助…情况是:1。转到报告后台任务的后台。2.立即返回前台,但仍有已创建且处于活动状态的后台任务。问题:当它停留在前台时会调用过期处理程序吗?