Лучший способ хранить данные в Android - PullRequest
7 голосов
/ 11 апреля 2011

Я хочу хранить данные в виде структуры, т.е. всю информацию о многих вызовах (например, журналы вызовов).Что я должен предпочесть?и я не хочу делиться своими данными с другим приложением.

  1. SQLiteDatabase
  2. ContentProvider
  3. SharedPreference
  4. или файловое хранилище
  5. или любым другим способом для моего требования, которое я не знаю.

Ответы [ 3 ]

17 голосов
/ 11 апреля 2011

SharedPreferences очевидно реализован внутри как XML-файл, который сериализуется и полностью десериализуется при обновлении.И это хранилище Key-Value без индекса.Так что используйте это только для простых данных, связанных с вашим приложением.Более 50 ключей, и вы, вероятно, перестарались.

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

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

Другой вариант - войти в обычные текстовые файлы, хранящиеся в хранилище файлов.

1 голос
/ 11 апреля 2011

Я недавно обнаружил db4o [http://www.db4o.com/android/]. Это не лучший выбор для хранения журналов, но если вы хотите сохранить данные в вашем объекте, это, безусловно, отличная альтернатива SQLite.

0 голосов
/ 11 апреля 2011

Вы также можете хранить данные внутри XML-файла, созданного вашим приложением. Во многих приложениях я сделал это. И используя любой SAX или DOM-парсер, вы можете легко получать данные. Ни одно другое приложение не может получить доступ к этому XML.

Надеюсь, это поможет

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