是否有可能在Android没有数据库存储?

时间:2011-07-04 14:47:26

标签: java android database mobile store

是否可以在应用程序中存储列表,而不必拥有数据库? 否则,存储简单列表的最简单方法是什么?

5 个答案:

答案 0 :(得分:3)

Android中的Data Storage有多种方式: 看一下开发人员专区,您可以获得所需的所有信息:

Shared Preferences     将私有原始数据存储在键值对中。

Internal Storage 将私有数据存储在设备内存中。

External Storage     将公共数据存储在共享外部存储上。

SQLite Databases     将结构化数据存储在私有数据库中。

Network Connection     使用您自己的网络服务器将数据存储在Web上。

当您找到最符合您需求的存储时,请随意询问任何类型的存储空间。

答案 1 :(得分:3)

数据库有多种持久性替代方案。仅举几例(可通过Java访问),您可以

  • 使用简单文件(使用serialisation或其他配置格式 - 在这种情况下,请查看commons configuration
  • 编写XML内容(使用XML序列化 - 再次?!? - 或其他机制,如XStreamJAXB,...)
  • 使用任何NoSQL存储(图形数据库,文档数据库等,......)
  • 使用普遍度层(如space4j
  • 使用transactionnal数据存储(如JDBM

仅列举Java中许多存储功能中的一小部分

答案 2 :(得分:3)

我认为这取决于您正在处理的列表的内容。如果List仅存储“简单对象”(如只有少数成员的整数或其他对象的字符串列表),则可以使用Android中内置的SharedPrefenrence。他们需要一把钥匙和一个价值。因此,如果您的列表包含5个对象 - 让我们说点保持简单 - 您可以像

一样保存它们
SharedPreferences.Editor editor = getSharedPreferences("YourListName", MODE_PRIVATE).edit();
for(int i = 0; i < YOUR_LIST.count() ; i++){
    Point p = YOUR_LIST.get(i);
    editor.putInt("Element" + i + " X", p.x);
    editor.putInt("Element" + i + " Y", p.y);
}
editor.commit();

再次接受这个,你可以说

SharedPreferences prefs = getSharedPreferences("YourListName", MODE_PRIVATE);
Map<String, ?> map = prefs.getAll();

答案 3 :(得分:2)

答案 4 :(得分:1)

Java允许您使用简单的API来使用对象的序列化。 Here java网页上有一篇技术文章。