我有一个iOS应用程序(用Objective-C编写),当在后台运行时,它会执行后台任务来检测你是否移动超过5英里每小时。如果发生这种情况(行程> 5英里/小时),则当应用程序被带到前台时会显示特定屏幕(屏幕123)。
这当前有效,但是当应用程序被带到前台时,您会在显示screen123之前简要地看到上次使用应用程序时查看过的最后一个屏幕(大约1秒钟)。有没有办法让应用程序在后台运行,当它被带到前台立即显示screen123(没有显示前一个屏幕)?
导致screen123显示的代码在AppDelegate中的applicationWillEnterForeground
内。
答案 0 :(得分:1)
iOS使用您上次状态的快照,以隐藏转换延迟回到您的应用。你可能正在看到这个。
阅读"准备拍摄应用的照片"来自Apple的"Strategies for Handling App State Transitions"。
你将很难完全摆脱它。你应该考虑一些平滑过渡的方法。也许你可以有一个只包含不会改变的内容的屏幕,然后淡化"< 5英里每小时"或"> 5英里每小时"之后将内容放到屏幕上。