Хранение событий в приложении Календарь в Android 2.1 - PullRequest
0 голосов
/ 20 апреля 2010

Поддерживает ли приложение календаря в Android кеш своей базы данных? Всякий раз, когда я редактирую и отмечаю некоторые события через приложение календаря, они сохраняются в базе данных, но если я редактирую calendar.db из какого-либо внешнего источника, сделанные изменения не отражаются в приложении календаря. Итак, мой вопрос:

  • Поддерживает ли приложение календаря кеш или другую форму базы данных?
  • Если да, то где и как?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2010

Одна вещь, о которой я могу подумать, - это использовать разрешение, чтобы разрешить доступ к календарю телефона во внешнем приложении (не в календаре), и это разрешение:

WRITE_CALENDAR

Аналогично, если вы пытаетесь читать из того же внешнего приложения, вы можете получить неправильные значения (или нулевые значения) без соответствующего разрешения на чтение:

READ_CALENDAR

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

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

0 голосов
/ 20 апреля 2010

Вполне вероятно, что приложение Календарь сохраняет значения, которые оно отображало в памяти. Может случиться так, что если вы будете отслеживать назад и вперед - достаточно далеко - тогда он забудет какое-то значение, а затем, когда вы вернетесь назад, он получит значение из базы данных, отредактированной извне. Однако, если он сбрасывает измененное значение в памяти перед сбросом значения из памяти, он перезаписывает внешне отредактированное значение перед продолжением. (Я не уверен, что он будет записывать значение в памяти только тогда, когда потребуется сбросить значение; я ожидаю, что оно будет записывать значение в базу данных достаточно скоро после того, как значение будет отредактировано - например, при сохранении записи календаря. )

С другой стороны, это может полностью отличаться от этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...