iOS应用程序将进入前台未调用,后台任务运行时黑屏



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

后台任务完成后,一切再次正常,并调用应用程序WillEnterForeground,但是有没有办法在任务运行时使应用程序重新激活?

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

快速问题。您是否正在使用beginBackgroundTaskWithExpirationHandler?

您是否异步运行实际工作?如这个答案所示?目标 c - 正确使用 beginBackgroundTaskWithExfilationHandler

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

最新更新