3

收到 UILocalNotification 后,如何防止我的 GUI 从锁定屏幕返回时重绘?在 didReceiveLocalNotification 我展示了一个模态视图,但我的视图控制器的旧状态在此之前显示了一会儿。我该如何防止这种情况?

当我从后台返回本地通知时,我得到的事件顺序如下:

1. UIApplicationWillEnterForegroundNotification
2. UIApplicationDidBecomeActiveNotification
3. didReceiveLocalNotification

当我来自锁定屏幕时:

1. didReceiveLocalNotification
2. UIApplicationDidBecomeActiveNotification

为什么会有这种差异以及我是否还缺少其他东西?

谢谢

4

2 回答 2

3

这是它是如何解决的。可能不是这样,但它对我有用。由于我的应用程序是 voip/audio,它不会出现didFinishLaunchingWithOptions......我发现,当 iOS 从背景或睡眠模式恢复时,它使用来自先前状态的缓存图像进行动画。所以解决方案基本上是用我的 default.png 图像交换这个缓存的图像。我在applicationWillResignActive委托中做。在那里我添加了一个带有Default.png图片的模态视图并将其关闭applicationDidBecomeActive。这真的很简短。希望它会帮助其他有同样问题的人。

于 2011-04-24T10:34:12.373 回答
1

您可以提供从本地通知启动/恢复时显示的自定义图像。只需将alertLaunchImage本地通知上的属性设置为正确图像的名称即可。

从文档:

该字符串是应用程序包中图像文件的文件名。此图像是为给定通知指定的启动图像;当用户点击操作按钮(例如,“查看”)或移动操作滑块时,将使用该图像代替默认的启动图像。如果此属性的值为 nil(默认值),则系统要么使用先前的快照,要么使用应用程序 Info.plist 文件中由 UILaunchImageFile 键标识的图像,或者回退到 Default.png。

警报启动图像

于 2011-04-23T18:39:10.473 回答