每天在使用应用程序时创建一个新的SharedPreferences对象是一个好主意吗?

时间:2019-01-06 08:18:38

标签: android sharedpreferences

我已经阅读了其他主题,它说多个共享的首选项是一件好事(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()


    }
}

1 个答案:

答案 0 :(得分:0)

正如@Tigger提到的,这是一种设计选择,但是如果您认为用户可能会使用您的应用几年,那么删除旧信息并不是一个坏主意,因为共享首选项中的许多键会使读取速度变慢/ update,如果您选择使用共享首选项,请确保删除一些旧密钥。共享首选项是简单的XM文件,因此不用说很多键会使它们变慢。 您还可以查看我的回购协议,该协议支持密钥的过期和自变量(例如您的日期)EasyPrefs