一、概念
以键值对的方式保存少量的数据,通常用来存数程序的一些配置信息,如是否打开音效、是否使用震动效果、窗口状态、是否进入过向导界面等。
二、SharedPreference
路径:data/data/包名/shared_prefs。三种获取方式: Context类中的getSharedPreferences()。Activity类中的getPreferences(),自动将当前Activity类名作为SP的文件名。PreferenceManager类中的getDefaultSharedPreferences(),自动将当前应用程序包名作为前缀来命名SP文件。commit()和apply()的区别:commit是同步的,会等待写入磁盘后再返回,而apply是异步的,在调用写磁盘操作后就直接返回了,但是这时候可能磁盘中数据还没有被修改。如果关心存入结果则使用commit如果不关心存入结果则使用apply。
//写入数据val sp = getSharedPreferences("data", MODE_PRIVATE) //获取SPval editor = sp.edit() //操作数据要通过编辑器editor.putString("name", "Tom") //写入数据editor.putInt("age", 28)editor.apply() //一定要提交//读取数据val prefs = getSharedPreferences("data", MODE_PRIVATE) //名称要跟写入的一样val name = prefs.getString("name", "") //第二个参数为没读取到数据的默认值//KTX写法(会自动提交)getSharedPreferences("data", MODE_PRIVATE).edit {putInt("num",123)}