在后台任务运行时,未调用iOS applicationWillEnterForeground和黑屏

时间:2012-11-16 20:01:00

标签: iphone objective-c ios

当用户暂停我的应用时,我正在使用后台任务来完成一些操作。 这工作正常,但我注意到如果用户在后台任务完成之前重新激活应用程序,屏幕将保持黑色,并且永远不会调用applicationWillEnterForeground:。

完成后台任务后,一切都很好,并且调用了applicationWillEnterForeground,但有没有办法在任务运行时重新激活应用程序?

我所能找到的就是让后台任务不断检查剩余时间,并注意当重新激活应用程序时,这会变得非常高。它可以自行结束并显示应用程序,但这仍然意味着应用程序黑色半秒左右。

1 个答案:

答案 0 :(得分:0)

快速提问。你在使用beginBackgroundTaskWithExpirationHandler吗?

您是否异步运行实际工作?如这个答案所示? objective c - Proper use of beginBackgroundTaskWithExpirationHandler

如果没有,你应该在a-sychornously上运行你的长期工作,因为否则它将作为你的主RunLoop的一部分执行。在长时间运行的任务完成之前,这确实会阻止您的应用重绘和响应。