在Android wear中,DataApi和MessageApi是顺序的吗?

In Android wear, is DataApi and MessageApi sequential?

例如,如果我发送:

我们能保证它们按正确的顺序进来吗?

首先,需要进行一些说明。请注意, sendMessage() 以单个节点为目标,而 putDataItem() 导致在整个网络中同步数据。因此,为了使问题更精确,我假设您正在谈论的情况是我们正在查看 sendMessage() 所针对的单个节点,同时在同一节点上我们正在查看数据更改。此外,我将假设在调用 onMessageReceived() 和 onDataChanged() 时测量到达该节点的时间。有了这个,让我们看看你的问题:

  1. putDataItem() 传递和 sendMessage() 传递发生在两个不同的通道上,因此它们之间没有保证的顺序。
  2. 对于通过 sendMessage() 传递的消息,无论两个端节点之间是否存在直接连接或中间是否存在某些跃点,都保证保留顺序。
  3. 对于 putDataItem(),顺序会保留,但您需要注意,当您更新同一项目时,可能看到的 onDataChanged() 调用少于 putDataItem() ;当一个项目被添加然后更新然后一次又一次地更新时,一些中间回调可能被跳过但最终回调保证反映净变化并且对于两个不同的数据项,顺序被保留。

希望这能回答您的问题。