Wear os 在Android wear中,DataApi和MessageApi是连续的吗?

Wear os 在Android wear中,DataApi和MessageApi是连续的吗?,wear-os,android-wear-data-api,Wear Os,Android Wear Data Api,例如,如果我发送: MessageApi.send(1) DataApi.putItem(2) MessageApi.send(3) DataApi.putItem(4) 我们能保证它们的顺序正确吗?首先,需要澄清一下。请注意,sendMessage()以单个节点为目标,而putDataItem()会导致在整个网络上同步数据。因此,为了使问题更精确,我假设您所讨论的是这样一种情况:我们正在查看sendMessage()所针对的单个节点,同时,在同一个节点上,我们正在查看数据更改。此外,我将假

例如,如果我发送:

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

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

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

  • putDataItem()传递和sendMessage()传递发生在两个不同的通道上,因此无法保证它们之间的顺序
  • 对于通过sendMessage()传递的消息,无论两个终端节点之间是否有直接连接,或两者之间是否有一些跃点,都保证保留顺序
  • 对于putDataItem(),顺序是保留的,但您需要注意,在更新同一项时,可能会看到比putDataItem()更少的onDataChanged()调用;当一个项目被添加、更新、再更新、再更新、再更新、再更新时,一些中间回调可能会被跳过,但最终回调保证反映净变化,对于两个不同的数据项目,顺序会被保留
  • 希望这能回答你的问题