Android的四大数据存储方式之一“SharedPreference”,其他三个分别是SQLite、Content Provider 和 File
一般使用SharedPreference来存储应用程序的配置信息。它一般存储在应用程序的私有存储区,文件权限是私有的。也就是说只能供写入者读取。它使用键/值(NVP机制)来存储数据。支持的数据类型(boolean、int、float、long和String)。它存储在应用程序的私有目录下(data/data/包名 /shared_prefs/)自定义的XML文件中。
1.创建SharedPreference
SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE);
第一个参数:SharedPreference 的名称
第二个参数:打开的方式,一般有两个值(0和MODE_PRIVATE)我们一般用MODE_PRIVATE
2.写入,更新SharedPreference
//获取SharedPreferences对象 SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE); //像SharedPreference中写入数据需要使用Editor Editor editor = myPreference.edit(); //存入键值对数据,注意此处的put[type]("key",value); editor.putString("STRING_KEY", "string"); editor.putInt("INT_KEY", 0); editor.putBoolean("BOOLEAN_KEY", true); //提交保存 //editor.apply(); editor.commit();
提示:
(1)apply和commit都是提交保存,区别在于apply是异步执行的,不需要等待。不论删除,修改,增加都必须调用apply或者commit提交保存。
(2)关于更新:如果已经插入的key已经存在。那么将更新原来的key。
(3)应用程序一旦卸载,SharedPreference也会被删除。
3.读取
SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE); //读取这里主要用到了get[type]("key",defaultvalue),第一个参数是要获取的key,第二个参数是默认值,是当没有为这个key保存值的时候使用。 String name=preferences.getString("name", "defaultname");
String age=preferences.getString("name", "暂无");
String age=preferences.getInt("age", 0);
String age=preferences.getBoolean("isRead", false);
4.检索
SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE); //检查当前键是否存在 boolean isContains=myPreference.contains("key"); //使用getAll可以返回所有可用的键值 //Map<String,?> allMaps=myPreference.getAll();