收到 UILocalNotification 后,如何防止 GUI 从锁定屏幕返回时重绘?在 didReceiveLocalNotification 中,我展示了一个模态视图,但在此之前会显示我的 View Controller 的旧状态。我如何防止这种情况?
当我从后台返回本地通知时,我得到的事件顺序如下:
1. UIApplicationWillEnterForegroundNotification
2. UIApplicationDidBecomeActiveNotification
3. didReceiveLocalNotification
当我从锁定屏幕回来时:
1. didReceiveLocalNotification
2. UIApplicationDidBecomeActiveNotification
为什么会有这种差异,是否还有其他我遗漏的东西?
谢谢
最佳答案
这是它是如何解决的。可能不是这样,但它对我有用。由于我的应用程序是 voip/audio,它不会出现 didFinishLaunchingWithOptions
......我发现,当它从后台或 sleep 模式恢复时,iOS 使用来自先前状态的缓存图像作为动画。所以解决方案基本上是将这个缓存的图像与我的 default.png 图像交换。我是在 applicationWillResignActive
委托(delegate)中完成的。在那里,我添加了一个带有 Default.png
图片的模态视图,并在 applicationDidBecomeActive
中将其关闭。这真的是简而言之。希望它能帮助其他有同样问题的人。
关于ios4 - 当来自锁屏 iphone 时,在 didreceivelocalnotification 上重绘 GUI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5766090/