这是情况:
我正在使用imagepicker选择一个大型视频.显然,选择器会花费一点时间来压缩视频.所以为了减轻用户体验,我已经启用了后台任务.
现在出现这个问题:
如果用户选择一个视频,然后点按主屏幕按钮,应用程序将进入后台,并在接下来的600秒内继续压缩视频.后台任务到期.在过期处理程序中,我已经停止了我的后台任务.
现在如果用户在后台到期后恢复应用程序
- (void)applicationDidBecomeActive:(UIApplication *)application
没有被援引.任何人都可以解释为什么会这样吗?
当
后台任务到期时,您的应用程序将真的
关闭!所以它不再活跃了,它正在启动.
您应该处理过期处理程序中的内容,或/或后台任务成功结束时处理.在这两种情况下,您需要将background_task设置为invalidate.
如果您的应用程序在转换视频时进入后台,然后用户再次在任务结束或后台任务到期之前再次打开,则应该会看到应用程序调用applicationDidBecomeActive.
我假设你知道,但是也许你在Info.plist文件中丢失了多任务属性,所以你的应用程序不会按照你的期望接受后台任务.