Dig*_*DEV 9 cocoa-touch objective-c ios ios8-today-widget ios-extensions
根据apple关于widgetPerformUpdateWithCompletionHandler:的内容,当窗口小部件不可见时,iOs Widget也可以更新他的内容.
在我的调试会话中,我注意到每当通知中心视图消失时,todayViewController都会被释放,所以我的问题是:
如果取消分配,我的todayViewController如何响应widgetPerfomrUpdateWithComplationHandler?
我需要每小时小部件更新他的内容,如果它不可见,我该怎么做?
iOs小部件生命周期如何?
请帮帮我:)谢谢
Mid*_* MP 14
小部件生命周期由iOS本身管理.
当你转到后台时,系统会拍摄你今天的小部件的快照.系统管理后台获取(窗口小部件的后台生命周期),它会widgetPerfomrUpdateWithComplationHandler:
尽可能调用更新窗口小部件数据并每次拍摄快照.当您再次打开它时,它将首先加载最新的快照并在此之后加载实时数据.
更新内容
Today扩展点提供用于管理窗口小部件状态和处理其内容更新的API(您可以在"通知中心框架参考"中阅读此API).尽管Today API中存在一些特定于平台的差异,但两个平台上支持的功能大致相同.
为了帮助您的窗口小部件查看最新版本,系统偶尔会捕获窗口小部件视图的快照.当窗口小部件再次可见时,将显示最新的快照,直到系统将其替换为视图的实时版本.
要在拍摄快照之前更新窗口小部件的状态,请确保符合NCWidgetProviding协议.当您的窗口小部件收到widgetPerformUpdateWithCompletionHandler:call时,使用最新内容更新窗口小部件的视图并调用完成处理程序,使用以下常量之一来描述更新的结果:
NCUpdateResultNewData
- 新内容要求您重绘视图
NCUpdateResultNoData
- 小部件不需要更新
NCUpdateResultFailed
- 更新过程中发生错误
参考今日小工具
通知中心
注意
widgetPerformUpdateWithCompletionHandler:的计划和预期用途旨在作为所有数据/模型更新逻辑的方便主页.如果实施,系统将在适当的时候调用窗口小部件,以便在通知中心可见时以及后台中更新其状态.需要实现才能启用后台更新.预计小部件将执行异步更新并尽可能远离主线程更新的工作.小部件应在工作完成时调用参数块,并传递相应的NCUpdateResult.窗口小部件不应阻止从viewWillAppear返回:关于此操作的结果.相反,小部件应在viewWillAppear中加载缓存状态:为了匹配上一个viewWillDisappear:的视图状态,然后在到达时平滑过渡到新数据.
参考:App扩展的生命周期
归档时间: |
|
查看次数: |
6623 次 |
最近记录: |