在Android中存储数据的最佳方法

7

我希望以结构化的方式存储数据,例如关于多个呼叫的所有信息(如通话记录)。 我应该选择什么?并且我不想与其他应用程序共享我的数据。

  1. SQLiteDatabase
  2. ContentProvider
  3. SharedPreference
  4. 文件存储
  5. 或者我不知道的其他适合我的需求的方法。
3个回答

17

SharedPreferences 显然是以XML文件的形式实现,并在更新时完全序列化和反序列化。它是一个键值存储,没有索引,因此只适合用于与您的应用程序相关的简单数据。如果超过50个键,则可能已经过度使用。

ContentProvider 旨在用于跨应用程序共享数据。您已明确表示不想这样做。

SQLiteDatabase 旨在让各个应用程序存储数据,并提供了很多灵活性,可以以不同的方式存储和索引数据。我个人在我的一个应用程序中使用它来存储日志。我建议采用这种方法。

另一个选项是将日志记录到存储在文件存储中的普通文本文件中。


1

我最近发现了db4o [http://www.db4o.com/android/]。虽然它不是存储日志的最佳选择,但如果您想将数据存储在对象中,这绝对是SQLite的一个很好的替代品。


0

你也可以将数据保存在应用程序创建的XML文件中。在我做过的许多应用程序中,我都是这样做的。使用任何SAX或DOM解析器,您都可以顺利地检索数据。没有其他应用程序可以访问该XML。

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接