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