DataAPI намного медленнее, чем MessageAPI?

Я синхронизирую события между носимым устройством и смартфоном. Поскольку я хочу, чтобы мои события были получены телефоном, даже если они отключены, я начал использовать DataAPI вместо MessageAPI, но теперь "синхронизация" занимает около 1-2 секунды вместо 0,1-0,5 секунды (воспринимаемые тайминги).

Я передаю в случае сообщений строковый путь типа «/notification/click» и два байта необработанных данных. В случае DataAPI я использую путь «/notification/click/1» и один байт необработанных данных. Вы тоже видели такое поведение? Знаете ли вы, как это исправить, кроме как использовать DataAPI только в том случае, если устройство находится в автономном режиме?

Если вы хотите увидеть код, пожалуйста, оставьте комментарий. Поскольку в этом коде много стандартного кода, я не добавлял его (пока).


person rekire    schedule 20.02.2015    source источник
comment
Я нахожу это невероятно медленным. Что ты сделал в итоге?   -  person StuStirling    schedule 24.11.2015
comment
О, мне нужно пересмотреть этот вопрос. Этот огромный dalay был какой-то ошибкой, которая исчезла через некоторое время. Однако я использую много битовых операций, чтобы уменьшить объем передаваемых данных. Вам это помогает?   -  person rekire    schedule 24.11.2015
comment
Спасибо за ответ. Проблема, с которой я сталкиваюсь, заключается в том, что я отлично сохраняю данные в API данных на мобильном устройстве. Я отлично подключаюсь к износу в WearableListenerService, но он вызывается лишь изредка.   -  person StuStirling    schedule 24.11.2015
comment
Просто нужно было задать вопрос stackoverflow.com/questions/33900980/. Это правильно? Если вы не удалите данные, onDataChanged вызываться не будет?   -  person StuStirling    schedule 24.11.2015


Ответы (2)


Вы можете проверить, подключены ли вы, выполнив поиск подключенных узлов NodeApi.getConnectedNodes() и посмотрите, не пусто ли оно. Но я не думаю, что это лучшее решение.

Если вам нужна быстрая и надежная доставка информации, отправьте сообщение и установите элемент данных. Добавьте уникальный идентификатор к обоим, чтобы вы могли игнорировать тот, который доставляется вторым. Таким образом, если вы подключены, вы быстро получите сообщение, а затем проигнорируете элемент данных. Если вы не подключены, сообщение будет потеряно, но элемент данных сохранится и в конечном итоге заставит вас выполнить действие. Вам нужно будет сохранить уникальные идентификаторы, чтобы обработать следующий случай:

  1. сообщение доставлено, действие завершено,
  2. перезагрузка по любой причине,
  3. элемент данных, в конечном итоге доставленный, должен быть проигнорирован.
person gruszczy    schedule 01.03.2015

да, в результате моего теста API данных работает медленнее, чем API сообщений (не в несколько раз, а в два раза выше), вы можете попробовать способ увеличить скорость ваших сообщений. API данных имеет функцию, позволяющую отправлять ресурсы, которые поддерживают размер данных, превышающий 100 КБ, но API сообщений не может поддерживать размер данных, превышающий 100 КБ. используйте общий интерфейс отправки сообщения, проверьте размер данных, которые вы хотите отправить, если он больше 100 КБ, используйте ресурс API данных для отправки, если нет, используйте API сообщения. это мое, чтобы ускорить мое приложение

person Jimmy Chen    schedule 05.03.2015