为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))");
答案 0 :(得分:1)
如果您要处理大量数据,我建议您远离共享首选项,因为可以在共享首选项中存储的最大数据量为1428.51 kb。
共享首选项也存储在xml文件中,并且缺少SQlite或Room的强大事务支持。共享首选项会将读取的整个XML文件内容全部数据加载到内存中。
比较房间和共享的偏好设置,例如400个项目的信息,您可以带房间去。