Android SharedPreference的使用
2019-04-25 本文已影响0人
无敌未央様
创建
第一个参数是储存的xml文件名称,第二个是打开方式,一般就用Context.MODE_PRIVATE。
SharedPreferences sp=context.getSharedPreferences("名称", Context.MODE_PRIVATE);
写入
//可以创建一个新的SharedPreference来对储存的文件进行操作
SharedPreferences sp=context.getSharedPreferences("名称", Context.MODE_PRIVATE);
//像SharedPreference中写入数据需要使用Editor
SharedPreference.Editor editor = sp.edit();
//类似键值对
editor.putString("name", "string");
editor.putInt("age", 0);
editor.putBoolean("read", true);
//editor.apply();
editor.commit();
提示:
(1)apply和commit都是提交保存,区别在于apply是异步执行的,不需要等待。不论删除,修改,增加都必须调用apply或者commit提交保存。
(2)关于更新:如果已经插入的key已经存在。那么将更新原来的key。
(3)应用程序一旦卸载,SharedPreference也会被删除。
读取
SharedPreference sp=context.getSharedPreferences("名称", Context.MODE_PRIVATE);
//第一个参数是键名,第二个是默认值
String name=sp.getString("name", "暂无");
int age=sp.getInt("age", 0);
boolean read=sp.getBoolean("isRead", false);
检索
SharedPreferences sp=context.getSharedPreferences("名称", Context.MODE_PRIVATE);
//检查当前键是否存在
boolean isContains=sp.contains("key");
//使用getAll可以返回所有可用的键值
//Map<String,?> allMaps=sp.getAll();
删除
当我们要清除SharedPreferences中的数据的时候一定要先clear()、再commit(),不能直接删除xml文件,一定要注意!!!
SharedPreference sp=getSharedPreferences("名称", Context.MODE_PRIVATE);
SharedPrefence.Editor editor=sp.edit();
editor.clear();
editor.commit();
1、getSharedPreference() 不会生成文件,这个大家都知道;
2、删除掉文件后,再次执行commit(),删除的文件会重生,重生文件的数据和删除之前的数据相同;
3、删除掉文件后,程序在没有完全退出停止运行的情况下,Preferences对象所存储的内容是不变的,虽然文件没有了,但数据依然存在;程序完全退出停止之后,数据才会丢失;
4、清除SharedPreferences数据一定要执行editor.clear(),editor.commit(),不能只是简单的删除文件,这也就是最后的结论,需要注意的地方。