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