SharedPreferences存储的特点
1、sharedPerferences是一种轻量级的存储方式。
2、只支持JAVA基本数据类型,不支持自定义的数据类型。
3、应用内数据可以共享。
4、使用简单,方便。
获取sharedPerferences的3中方式
1、Context对象的getSharedPreferences(String name, int mode)方法获取。
2、Activity对象的getPreferences(int mode)方法获取。
3、PreferenceManager对象的getDefaultSharedPreferences(Context context)方法获取。
sharedPerferences的操作模式
1、Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容(目前只用这一种)。
2、Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.(没有用过)
3、Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.(Android 4.2中弃用)
4、MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.(Android 4.2中弃用)
sharedPerferences存数据
1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
sp.edit().putString("name", "小明").putInt("age", 11).commit();
2、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString("name", "小明");
editor.putInt("age", 11);
editor.commit();
注:不可这样写
SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
sp.edit().putString("name", "小明");sp.edit().putInt("age", 11);
sp.edit().commit();
因为sp.edit()每次都会返回一个新的Editor对象,Editor的实现类EditorImpl里面会有一个缓存的Map,最后commit的时候先将缓存里面的Map写入内存中的Map,然后将内存中的Map写进XML文件中。使用上面的方式commit,由于sp.edit()又重新返回了一个新的Editor对象,缓存中的Map是空的,所以导致数据无法被存储。
sharedPerferences取数据
String name = sp.getString("name", null);
int age = sp.getInt("age", 0);
注:取数据的两个参数,第一个是key值,第二是默认值表示当传入的键找不到对应的值时会已默认值返回。
sharedPerferences移除某个key值已经对应的值
1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
sp.edit().remove(key).commit();
sharedPerferences清楚所有数据
1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
sp.edit().clear().commit();
sharedPerferences查询某个key是否存在
1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
sp.contains(key); 返回boolean值
sharedPerferences返回所有的键值对
1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
sp.getAll(); 返回一个Map<Sting,?>
sharedPerferences工具类的下载。
sharedPerferences保存文件的查看(保存地址/data/data/包名/shared_prefs/)
一、adb shell命令查看
1、打开命令行页面输入adb shell 如图
2、输入run-as 应用包名 如图
3、输入ls查看当前目录下的文件夹 如图
4、输入cd shared_prefs进入到该文件加下 如图
5、输入ls查看文件如图
6、找到你保存的文件,输入cat 文件名 如图
第二 在Anroid studio 的Terminal控制台输入第一种方法的shell命令
第三、如果用模拟器调试可以使用DDMS中File Explorer中看到xml文件,如果用真机那么真机必须打开root权限。
Android studio打开DDMS步骤如图