Можно ли создать локальный файл для хранения данных?

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

  1. Насколько надежен DataAPI?
  2. Моя идея создать локальный файл удваивает мои усилия?
  3. Как я могу создать локальный файл на моем носимом устройстве, а затем получить к нему доступ?

person cdlc    schedule 09.09.2015    source источник


Ответы (2)


Синхронизация данных с использованием DataApi надежна, и я рекомендую ее использовать; если вы столкнулись со сценарием, в котором синхронизация не происходит надежно, это следует рассматривать как ошибку, и о ней необходимо сообщить как таковую. Одна проблема, с которой сталкиваются люди, заключается в том, что они создают один и тот же элемент данных и не получают обратный вызов onDataChanged(), но это задумано, если одни и те же данные добавляются несколько раз, нет никаких изменений, следовательно, нет обратного вызова триггеры.

Еще один фактор, который вы, возможно, захотите принять во внимание, заключается в том, предназначены ли данные, которые вы создаете на одном узле, для использования всеми другими узлами или только целевым узлом; DataApi синхронизирует данные на всех подключенных узлах, поэтому, если я создаю элемент данных на watch1 и хочу синхронизировать его с моим телефоном, и если на картинке также есть watch2, watch2 также получает те же данные.

Если вы в конечном итоге используете DataApi, я настоятельно рекомендую обязательно внедрить политику, которая удаляет данные после их синхронизации и использования, иначе данные будут накапливаться без контроля, и вам, наконец, не хватит места.

person Ali Naddaf    schedule 09.09.2015
comment
Кстати: самый простой обходной путь для проблемы, которую вы описали в первом абзаце, — это включить временные метки в данные, которые вы хотите отправить. - person L.Butz; 09.09.2015
comment
Я буду использовать dataApi, вопрос в том, хочу ли я сохранить локальный файл на всякий случай. Можете ли вы сказать мне, как я могу стереть потребляемые данные? Atm Я только добавляю данные, потому что я не знал, что есть ограничение по пространству - person cdlc; 09.09.2015
comment
Вы можете использовать DataApi#deleteDataItems() для удаления данных. - person Ali Naddaf; 09.09.2015
comment
@L.Butz: я бы не назвал это проблемой; это поведение по дизайну. Вы правы в том, что можно добавить отметку времени, и я бы сделал еще один шаг и сказал, что если кому-то действительно нравится иметь повторяющиеся элементы данных, которые выглядят одинаково и отличаются только временем их создания, их следует рассматривать как разные элементы данных. , то время создания фактически является частью самих данных и должно быть добавлено к данным, что придаст им желаемое поведение. Таким образом, добавление временной метки не следует рассматривать как обходной путь, но в некоторых случаях оно необходимо, поскольку оно является частью самих данных. - person Ali Naddaf; 09.09.2015

Чтобы ответить на ваши вопросы:

  1. Я не знаю, насколько это эффективно, но у нас были проблемы, когда обновления данных не запускали соответствующие слушатели на стороне наблюдения. Так что я не уверен. Может быть у кого-то есть официальное заявление по этому поводу?
  2. Я думаю, это зависит от объема данных, которые вы хотите сохранить. Поэтому я предлагаю вам сначала определиться с суммой, а затем выбрать формат. Имейте в виду, что существует также возможность хранить данные в общих настройках.
  3. Эти ребята здесь пытались сохранить изображение на смотреть, но это не имеет значения, является ли это файлом изображения, текстом или любым другим файлом.
person L.Butz    schedule 09.09.2015
comment
Я хочу хранить около 2 МБ данных! У меня не было никаких проблем со слушателями, если приложение на мобильной стороне открыто, оно всегда запускает onDataChanged() - person cdlc; 09.09.2015