ios – 如果后台任务到期,则不调用didBecomeActive

前端之家收集整理的这篇文章主要介绍了ios – 如果后台任务到期,则不调用didBecomeActive前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是情况:

我正在使用imagepicker选择一个大型视频.显然,选择器会花费一点时间来压缩视频.所以为了减轻用户体验,我已经启用了后台任务.

现在出现这个问题:

如果用户选择一个视频,然后点按主屏幕按钮,应用程序将进入后台,并在接下来的600秒内继续压缩视频.后台任务到期.在过期处理程序中,我已经停止了我的后台任务.

现在如果用户后台到期后恢复应用程序

- (void)applicationDidBecomeActive:(UIApplication *)application

没有被援引.任何人都可以解释为什么会这样吗?

解决方法

后台任务到期时,您的应用程序将真的关闭!所以它不再活跃了,它正在启动.

您应该处理过期处理程序中的内容,或/或后台任务成功结束时处理.在这两种情况下,您需要将background_task设置为invalidate.

如果您的应用程序在转换视频时进入后台,然后用户再次在任务结束或后台任务到期之前再次打开,则应该会看到应用程序调用applicationDidBecomeActive.

我假设你知道,但是也许你在Info.plist文件中丢失了多任务属性,所以你的应用程序不会按照你的期望接受后台任务.

猜你在找的iOS相关文章