当来自锁屏 iPhone 时在 didreceivelocalnotification 上重绘 GUI
Posted
技术标签:
【中文标题】当来自锁屏 iPhone 时在 didreceivelocalnotification 上重绘 GUI【英文标题】:redraw GUI on didreceivelocalnotification when come from lock screen iphone 【发布时间】:2011-04-23 18:33:00 【问题描述】:如何防止我的 GUI 在收到 UILocalNotification 后从锁定屏幕返回时重绘?在 didReceiveLocalNotification 我展示了一个模态视图,但我的视图控制器的旧状态在此之前显示了一会儿。如何防止这种情况发生?
当我从后台返回本地通知时,我得到的事件顺序如下:
1. UIApplicationWillEnterForegroundNotification
2. UIApplicationDidBecomeActiveNotification
3. didReceiveLocalNotification
当我从锁屏界面回来时:
1. didReceiveLocalNotification
2. UIApplicationDidBecomeActiveNotification
为什么会有这种差异以及我是否还缺少其他东西?
谢谢
【问题讨论】:
【参考方案1】:解决方法如下。可能不是这样,但它对我有用。由于我的应用程序是 voip/audio,它不会出现在 didFinishLaunchingWithOptions
... 我发现,当 ios 从背景或睡眠模式恢复时,它使用来自先前状态的缓存图像进行动画。所以解决方案基本上是用我的 default.png 图像交换这个缓存的图像。我在applicationWillResignActive
代表中进行。在那里我添加了一个带有Default.png
图片的模态视图,并在applicationDidBecomeActive
中将其关闭。这真的很简短。希望它能帮助其他有同样问题的人。
【讨论】:
【参考方案2】:您可以提供从本地通知启动/恢复时显示的自定义图像。只需将本地通知上的 alertLaunchImage
属性设置为正确图像的名称即可。
来自文档:
字符串是应用程序包中图像文件的文件名。此图像是为给定通知指定的启动图像;当用户点击操作按钮(例如,“查看”)或移动操作滑块时,将使用该图像代替默认的启动图像。如果此属性的值为 nil(默认值),则系统要么使用上一个快照,要么使用应用程序 Info.plist 文件中由 UILaunchImageFile 键标识的图像,或者回退到 Default.png。
alertLaunchImage
【讨论】:
我使用@"Default.png",但似乎它被忽略了。它以某种方式显示以前的视图(或重绘它们)。我真的不知道如何抓住它。以上是关于当来自锁屏 iPhone 时在 didreceivelocalnotification 上重绘 GUI的主要内容,如果未能解决你的问题,请参考以下文章
UIAlertController 中的 UIPickerView 仅在 iPhone 中正确时在 iPad 中给出错误?