Внести изменения в контент-провайдера

#android #synchronization #calendar #android-contentprovider #contentobserver

#Android #синхронизация #Календарь #android-contentprovider #contentobserver

Вопрос:

Я разрабатываю приложение, которое синхронизирует удаленный календарь с устройством Android.

Все работает нормально, но теперь я хочу сделать это немного быстрее, разрешив устройству Android синхронизировать только события, которые были отредактированы пользователем (с календарем Android). Итак, мне нужно знать, какие события были отредактированы.

Я изучал ContentObserver но это не кажется хорошим решением, поскольку мне пришлось бы регистрировать наблюдателя для каждого события в календаре. И я даже не знаю, был бы наблюдатель все еще там, если бы я перезапустил устройство.

Другое решение, которое я придумал, — сохранить копию всех событий в локальной базе данных. Эта база данных будет обновляться при каждой синхронизации. И перед каждой синхронизацией мы могли бы сравнивать эту базу данных с поставщиком календаря Android…

Есть ли более простой способ сделать это?

Спасибо, Джиллис

Ответ №1:

Я почти уверен, что вы могли бы запросить базу данных календаря для событий, измененных после определенной даты (которая была бы датой после изменения самого последнего измененного события).

Запрос был бы настолько дешевым, что вы могли бы повторять его каждую секунду или около того.

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

Комментарии:

1. Действительно, дата последнего изменения отсутствует… Мне интересно, как Google синхронизируется с календарем Google…