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

时间:2015-11-04 00:20:32

标签: wear-os android-wear-data-api

例如,如果我发送:

  • MessageApi.send(1)
  • DataApi.putItem(2)
  • MessageApi.send(3)
  • DataApi.putItem(4)

我们是否保证他们按照正确的顺序进入?

1 个答案:

答案 0 :(得分:2)

首先,有些澄清是有道理的。请注意,sendMessage()以单个节点为目标,而putDataItem()则会在整个网络中同步数据。因此,为了使问题更加准确,我假设您正在讨论我们正在查看sendMessage()所针对的单个节点的情况,同时,在同一节点上我们正在查看数据更改。另外,我将假设在调用onMessageReceived()和onDataChanged()时测量到达该节点的位置。有了它,让我们来看看你的问题:

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