SharedPreferences的用法

SharedPreferences 是Android数据持久化方法中最简单的一种实现。它的使用场景一般是在需要保存一个相对小的key-value集合。

SharedPreferences对象指向了一个保存key-value pairs(可以保存的基础数据类型:Boolean、int、Float、Long、String)的文件,并为读写他们提供了简单的方法。文件均由framework管理,其既可以是私有的, 也可以是共享的。

一)获取SharedPreference

1.this.getPreferences(int mode)

通过Activity对象获取,获取的是本Activity私有的Preferences,保存在系统中的xml 形式的文件,文件名称为这个Activity的名字。因此一个Activity只有一个,属于这个Activity。

mode 可选Context.MODE_APPEND;
                Context.MODE_ENABLE_WRITE_AHEAD_LOGGING;
                Context.MODE_MULTI_PROCESS;
                Context.MODE_PRIVATE;(权限,只有本app可以读取)

2.this.getSharedPreferences(String name,int mode)

该方法来自Activity的父类ContextWrapper.  通过name 可以创建指定的文件。

3.PreferenceManager.getDefaultSharedPreferences(this);

 PreferenceManager的静态函数,会获取一个默认sharedPreferences,文件名为安装包名称。

二)读写SharedPreference

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

SharedPreferences.Editor editor = sharedPref.edit();

editor.putInt(getString(R.string.saved_hight_score),newHightScore);

editor.apply(); //注 1

//读

int score = getResources().getInteger(R.string.saved_high_score_default);

score = editor.getInt(getString(R.string.saved_high_score),0);


三)Editor.apply()与Editor.commit()区别

1.apply没有返回值而commit返回boolean表明修改是否提交成功

2.apply是将修改数据原子提交到内存,而后异步真正提交到硬件磁盘,而commit是同步的提交到硬件磁盘,

  因此在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。

  而apply只是原子的提交到内存,后面有调用apply的函数的将会直接索芙特内存数据,这样从一定程序上提高了

  很多效率。

3.apply方法不会提示任何失败的提示。

  由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用

  apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值