Android轻量级的存储SharedPreferences及getSharedPreferences 、 getPreferences 与getDefaultSharedPreferences
2017-05-09 10:13
399 查看
SharedPreferences适用范围
保存少量的数据,且这些数据的格式简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果,口令密码等原理:SharedPreferences数据总是存储在/data/data//shared_prefs目录下的一个XML文件。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。 SharedPreferences本身是一 个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的
getSharedPreferences(String xml文件名, int 权限模型)方法来获取SharedPreferences实例,该方法中name表示要操作的xml文件名,第二个参数具体如下:
Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 数据能被其他应用只读。
Context.MODE_WORLD_WRITEABLE: 数据能被其他应用读,写
Editor有如下主要重要方法:
SharedPreferences.Editor clear():清空SharedPreferences里所有数据
SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
boolean commit(): 当Editor编辑完成后,使用该方法提交修改。
保存: SharedPreferences sf; sf = context.getSharedPreferences("test", Context.MODE_PRIVATE); //获取编辑器 Editor editor = sf.edit(); //使用编辑器写入数据 editor.putInt("userId", 1001); editor.putString("userName", "tom"); editor.putBoolean("sex", true); //提交数据 editor.commit(); 获取数据: SharedPreferences sf= context.getSharedPreferences(SHAREDPREFERENCES_NAME, Context.MODE_WORLD_READABLE); String userName= sf.getString(userName, "默认的值");
getSharedPreferences 与 getPreferences 与getDefaultSharedPreferences的区别
getSharedPreferences() — 如果需要多个通过名称参数来区分的shared preference文件, 名称可以通过第一个参数来指定。可在app中通过任何一个Context 执行该方法。是Context类中的方法, 可以指定file name 以及 mode。getPreferences()— 当activity仅需要一个shared preference文件时。因为该方法会检索activity下默认的shared preference文件,并不需要提供文件名称(activity的类名) 是Activity类中的方法,只需指定mode
getDefaultSharedPreferences 据说每个应用有一个默认的偏好文件preferences.xml。使用getDefaultSharedPreferences获取
还有 PreferenceActivity 和FragmentActivity并没什么卵用。
commit和apply
commit和apply虽然都是原子性操作,但是原子的操作不同,commit是原子提交到数据库,所以从提交数据到存在Disk中都是同步过程,中间不可打断。而apply方法的原子操作是原子提交的内存中,而非数据库,所以在提交到内存中时不可打断,之后再异步提交数据到数据库中,因此也不会有相应的返回值。
所有commit提交是同步过程,效率会比apply异步提交的速度慢,但是apply没有返回值,永远无法知道存储是否失败。
相关文章推荐
- Android应用开发SharedPreferences存储数据的使用方法 以及与 getPreferences 、getDefaultSharedPreferences的区别
- Android之SharedPreference轻量级数据存储
- Android之SharedPreference轻量级数据存储
- Android之SharedPreference轻量级数据存储
- 安卓getSharedPreferences 与 getPreferences 与getDefaultSharedPreferences的区别
- getSharedPreferences 与 getPreferences 与getDefaultSharedPreferences的区别
- getSharedPreferences 与 getPreferences 与getDefaultSharedPreferences的区别
- Android 存储文件方式之一---SharedPreferences 内容提供者,以xml 的方式进行数据 存储。是一种轻量级的文件数据存储
- 关于Android轻量级存储SharedPreferencesUtils工具类
- getSharedPreferences 、 getPreferences 、getDefaultSharedPreferences的区别
- Android——getPreferences()、getSharedPreferences()和getDefaultSharedPreferences()区别
- getSharedPreferences 与 getPreferences 与getDefaultSharedPreferences的区别
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- getDefaultSharedPreferences
- Android学习13——数据存储之SharedPreference
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- (转)【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- getSharedPreferences()与getSharedPreferences()与getDefaultSharedPreferences()的区别
- Android SharedPreferences 存储复杂对象
- android 利用SharedPreferences 存储系统数据的高级应用(枚举)