我应该如何为我的Android应用存储约400个键值对?

时间:2019-05-29 18:17:42

标签: android android-sqlite sharedpreferences key-value design-principles

为Android应用程序存储约400个键值对的最佳方法是什么?这些值将在应用程序的初始设置中设置,此后很少更改。但是,每个应用程序将它们用作模板一次,以创建一组其他对象,然后对其进行处理。

在应用程序的上一个迭代中,我将这些值存储在单独的sql表中。我现在正在过渡到使用会议室模型并重做很多代码,其中一部分是评估以前的决定。

以前的代码如何工作是将ID和布尔值对导入到对象列表中。然后,当用户向这些对象添加其他信息时,我会将这些对象数据重新存储回单独的但相关的sql表中。

我应该将值保留在表中吗?使用SharedPreferences是太多还是效率低下?有我不知道的更好的方法吗?

这是两个表的格式。第一个是跟踪当前正在旋转的推车,而第二个表是每个推车的每日历史记录。

(cartID int NOT NULL PRIMARY KEY, 
in_rotation boolean NOT NULL) ");

database.execSQL("create table " + cartlistTable + " 
(checksheetID string NOT NULL, 
cartID int NOT NULL, 
in_rotation boolean NOT NULL, 
checked boolean default 0, 
overdue boolean default 0, 
maintenance boolean default 0, 
FOREIGN KEY(checksheetID) REFERENCES checksheet(checksheetID), 
FOREIGN KEY(cartID) REFERENCES carts(cartID))");

1 个答案:

答案 0 :(得分:1)

如果您要处理大量数据,我建议您远离共享首选项,因为可以在共享首选项中存储的最大数据量为1428.51 kb。

共享首选项也存储在xml文件中,并且缺少SQlite或Room的强大事务支持。共享首选项会将读取的整个XML文件内容全部数据加载到内存中。

比较房间和共享的偏好设置,例如400个项目的信息,您可以带房间去。