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

这是情况:

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

现在出现这个问题:

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

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

- (void)applicationDidBecomeActive:(UIApplication *)application

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

解决方法

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

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

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

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

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...