0

我在我的 iOS 应用程序的下一个版本中包含了 Today 扩展。仅当用户对包含应用程序管理的数据库进行特定更改时,小部件的内容才会更新。

有没有办法从包含的应用程序向 Today 小部件进程发送某种信号,让它知道它的数据已经失效,并且它应该在下次用户拉下通知中心时重新加载自己?

4

1 回答 1

1

您不需要自己更新小部件,iOS 会尝试定期更新它。每次 iOS 执行此操作时,都会调用小部件中的一个函数。这是功能:

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!)

如果您的数据已更改,请致电

completionHandler(.NewData)

否则,如果您的数据没有更改,请致电

completionHandler(.NoData)

而已!并且不要在该函数中做任何需要大量时间的东西,因为 iOS 可能会“杀死”你的小部件。

于 2015-03-08T13:36:55.760 回答