我需要存储我的 Android 应用程序的大量和可变数量的复选框状态。每 5-10 分钟我需要检索一个复选框的状态(应该通过其他活动中的用户交互来更改)。我知道我可以将它们存储在 sharedPreferences 或 SQLite 数据库中。数量或复选框从 10 到(infinite-1) 不等。
我的第一个想法是将所有状态存储在一个字符串中:
chk1:true,chk2:false,chk3:false,chk4:false,chk5:true
:
由和分隔,
。我可以在一个getString()
电话中检索我所有的复选框状态。
我离开了这个解决方案,因为我的复选框数量越来越多,而且我认为拥有一个包含数千个数据的字符串并没有执行。
我的第二个想法是将每个 chk 存储在单独的首选项中。我离开了这个解决方案,因为我需要检索可能多次我的复选框状态..想象 getString()
调用 10000 次或更多次它是资源的浪费。
我的第三个想法是将所有单一状态存储在 SQLite 数据库中。
ID Status
1 T
2 F
3 F
4 F
5 T
在这个解决方案中,我不喜欢我需要大量时间访问我的数据库。
如果我需要从现在到无限期每 5 分钟检索一次复选框状态,最好的解决方案是什么(性能和内存消耗)?DB 或 sharedpref?如果是数据库,我需要每次打开数据库并实例化一个游标,还是应该在我的活动开始时实例化它?