我为德国冰球联赛DEL制作了一个今日小部件。
我从我们的服务器加载下一场比赛并在tableView中显示它们。加载过程是在建议的方法"widgetPerformUpdateWithCompletionHandler"中启动的。最初,我在"viewWillAppear"中加载一些缓存数据。
到目前为止,一切运行得很好!
但是过一段时间(一天),小部件就停止工作了。当我打开通知中心时,小部件看起来正常,但它再也没有更新。我必须将小部件从通知中心中删除,然后重新添加。之后,小部件会再次工作一天,然后再次停止工作。
为了查看小部件在做什么,我在"widgetPerformUpdateWithCompletionHandler"中加载数据时添加了一个简单的白色视图和状态文本,以查看小部件是否在工作。当小部件正在工作时,白色视图会出现。当它不工作时,状态视图不会出现。所以我认为"widgetPerformUpdateWithCompletionHandler"方法在小部件在通知中心活跃一段时间后不再被调用。
我不知道是什么导致小部件停止工作。有任何想法吗?
我从我们的服务器加载下一场比赛并在tableView中显示它们。加载过程是在建议的方法"widgetPerformUpdateWithCompletionHandler"中启动的。最初,我在"viewWillAppear"中加载一些缓存数据。
到目前为止,一切运行得很好!
但是过一段时间(一天),小部件就停止工作了。当我打开通知中心时,小部件看起来正常,但它再也没有更新。我必须将小部件从通知中心中删除,然后重新添加。之后,小部件会再次工作一天,然后再次停止工作。
为了查看小部件在做什么,我在"widgetPerformUpdateWithCompletionHandler"中加载数据时添加了一个简单的白色视图和状态文本,以查看小部件是否在工作。当小部件正在工作时,白色视图会出现。当它不工作时,状态视图不会出现。所以我认为"widgetPerformUpdateWithCompletionHandler"方法在小部件在通知中心活跃一段时间后不再被调用。
我不知道是什么导致小部件停止工作。有任何想法吗?
widgetPerformUpdateWithCompletionHandler
方法中复制了一个块:self.completionHandler = _CompletionHandler;
,然后在异步任务完成后调用它。但是经过一段时间(几个小时?),小部件的viewDidLoad
被调用,但widgetPerformUpdateWithCompletionHandler
不再被调用。因此,我的小部件看起来为空,高度约为50像素。复制的块是否不安全?或者我应该在viewDidLoad
中开始我的异步任务? - Raphaël Pinto