【发布时间】:2015-03-08 11:57:23
【问题描述】:
我将在我的 iOS 应用的下一个版本中包含一个 Today 扩展。仅当用户对包含应用程序管理的数据库进行特定更改时,小部件的内容才会更新。
有没有办法从包含的应用程序向 Today 小部件进程发送某种信号,让它知道它的数据已经失效,并且它应该在下次用户拉下通知中心时重新加载自己?
【问题讨论】:
标签: ios ios8-today-widget notificationcenter
我将在我的 iOS 应用的下一个版本中包含一个 Today 扩展。仅当用户对包含应用程序管理的数据库进行特定更改时,小部件的内容才会更新。
有没有办法从包含的应用程序向 Today 小部件进程发送某种信号,让它知道它的数据已经失效,并且它应该在下次用户拉下通知中心时重新加载自己?
【问题讨论】:
标签: ios ios8-today-widget notificationcenter
您不需要自己更新小部件,iOS 会尝试定期更新它。每次 iOS 执行此操作时,都会调用小部件中的一个函数。这是函数:
func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!)
如果您的数据发生了变化,请致电
completionHandler(.NewData)
否则,如果您的数据没有更改,请致电
completionHandler(.NoData)
就是这样!并且不要在那个函数中做任何需要大量时间的东西,因为 iOS 可能会“杀死”你的小部件。
【讨论】: