我找到了一个很好的描述,用于刷新watchapp UI及其复杂性here。这对我有用,即使有时UI仅在我实际将应用程序带到前台时更新(但这是另一个问题)。
到目前为止我一直在做的是:1 - 我安排了后台刷新;
2 - 调用后台刷新任务时,我会安排后台downloadTask;
3 - 完成后,downloadTask调用其委托方法(if (fscanf(data, "%f %f", &ID, &n) != 2) {
fscanf(data, "%*[^\n]"); // read and discard up to the next newline character
fgetc(data); // ... and discard the newline character, too
/* XXX: What to do with cordx[i] and cordy[i]? */
}
),我在其中调用另一种方法来更新UI,使用新数据重新加载我的复杂功能并安排快照刷新和另一次后台刷新。 / p>
这几乎正常(我上面提到的偶然问题)。但有时我会把手表放在飞行模式上。这里发生的是调用错误委托方法,因此我安排另一个应用程序刷新大约1小时。如果仍处于飞行模式,它将在一小时内请求另一次刷新,依此类推。
这种方法的问题在于,当我关闭飞行模式时,应用程序需要很长时间来更新其UI,具体取决于计划下一次更新的时间。
有人可以建议一个更好的方法来获取新数据,一旦有人恢复互联网连接?
答案 0 :(得分:0)
目前(watchOS 3.2),watchOS中没有可以告诉您设备何时连接到互联网的框架。但是,您可以利用iOS应用中的Reachability framework并使用WatchConnectivity框架在可以刷新其UI时发出Watch应用信号。