Являются ли DataApi и MessageApi последовательными в Android Wear?

Например, если я отправлю:

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

Гарантируем ли мы, что они приходят в правильном порядке?


person Kamilski81    schedule 04.11.2015    source источник


Ответы (1)


Прежде всего, необходимо сделать некоторые уточнения. Обратите внимание, что sendMessage() нацелен на один узел, а putDataItem() приводит к синхронизации данных по всей сети. Итак, чтобы уточнить вопрос, я бы предположил, что вы говорите о ситуации, когда мы смотрим на один узел, на который нацелен sendMessage(), и в то же время на том же узле мы смотрим на изменения данных. Кроме того, я собираюсь предположить, что прибытие в этот узел измеряется при вызове onMessageReceived() и onDataChanged(). С этим, давайте посмотрим на ваш вопрос:

  1. Доставка putDataItem() и доставка sendMessage() происходят по двум разным каналам, поэтому между ними нет гарантированного порядка.
  2. Для сообщений, доставленных через sendMessage(), порядок гарантированно сохраняется, независимо от наличия прямого соединения между двумя конечными узлами или наличия некоторых переходов между ними.
  3. Для putDataItem() порядок сохраняется, но вы должны знать, что вы можете увидеть меньше вызовов onDataChanged(), чем putDataItem(), когда вы обновляете тот же элемент; когда элемент добавляется, а затем обновляется, а затем обновляется снова и снова, некоторые промежуточные обратные вызовы могут быть пропущены, но окончательный обратный вызов гарантированно отражает чистые изменения, и для двух разных элементов данных порядок сохраняется. .

Надеюсь, что это ответ на ваш вопрос.

person Ali Naddaf    schedule 04.11.2015