如何在收到UILocalNotification后从锁定屏幕返回时阻止我的GUI重绘?在didReceiveLocalNotification中,我提供了一个模态视图,但我的视图控制器的旧状态在此之前显示了一会儿。我该如何防止这种情况?
当我从后台返回本地通知时,我获得的事件顺序如下:
1. UIApplicationWillEnterForegroundNotification
2. UIApplicationDidBecomeActiveNotification
3. didReceiveLocalNotification
当我来自锁定屏幕时:
1. didReceiveLocalNotification
2. UIApplicationDidBecomeActiveNotification
为什么会出现这种差异以及是否还有其他我缺失的东西?
谢谢
答案 0 :(得分:3)
这是如何解决的。可能不是这样,但它对我有用。因为我的应用程序是voip / audio,所以它不会来didFinishLaunchingWithOptions
...我发现,当iOS从后台或睡眠模式恢复时,iOS使用来自先前状态的缓存图像进行动画。所以解决方案基本上是用我的default.png图像交换这个缓存的图像。我在applicationWillResignActive
委托中执行此操作。在那里,我添加了一个带有Default.png
图片的模态视图,并在applicationDidBecomeActive
中将其关闭。这真的很简短。希望它能帮助其他人解决同样的问题。
答案 1 :(得分:1)
您可以提供从本地通知启动/恢复时显示的自定义图像。只需将本地通知上的alertLaunchImage
属性设置为正确图像的名称即可。
来自文档:
字符串是应用程序包中图像文件的文件名。该图像是为给定通知指定的启动图像;当用户点击动作按钮(例如,“查看”)或移动动作滑块时,将使用图像代替默认的启动图像。如果此属性的值为nil(缺省值),则系统使用上一个快照,使用应用程序的Info.plist文件中UILaunchImageFile键标识的图像,或者回退到Default.png。