我已经阅读了其他主题,它说多个共享的首选项是一件好事(Android - Is it bad practice to have multiple Shared Preferences?) ,但是不应使用prefs存储大量数据。但是,“大量数据”是什么意思?该应用运行的每一天,都会创建一个以当前日期为键的新键值对...这是一个好主意还是应该切换到SQLite?
class TimeAndMoneyForASpecificDay (val context: Context) {
private fun obtainDate(): String{
val df = SimpleDateFormat("MMM d, yyyy")
return df.format(Date())
}
fun saveTimeWorkedAndMoneyEarned(timeWorked: Float, moneyEarned: Float) {
val current = obtainDate()
val time = context.getSharedPreferences("time", 0) // ??
val money = context.getSharedPreferences("money",0)
val timeEditor = time.edit()
val moneyEditor = money.edit()
timeEditor.putFloat(current, timeWorked)
moneyEditor.putFloat(current, moneyEarned)
timeEditor.apply()
moneyEditor.apply()
}
}
答案 0 :(得分:0)
正如@Tigger提到的,这是一种设计选择,但是如果您认为用户可能会使用您的应用几年,那么删除旧信息并不是一个坏主意,因为共享首选项中的许多键会使读取速度变慢/ update,如果您选择使用共享首选项,请确保删除一些旧密钥。共享首选项是简单的XM文件,因此不用说很多键会使它们变慢。 您还可以查看我的回购协议,该协议支持密钥的过期和自变量(例如您的日期)EasyPrefs