一篇文章掌握SharedPreferences

一.基本介绍

1.简单介绍

SharedPreferences是一种轻型的存储方式,它的原理是基于xml存储key-value键值对数据,通常用来存储一些简单的配置信息。

存储位置:/data/data/{包名}/shared_prefs目录下。

SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。

2.优缺点分析

优点:

SharedPreferences对象与SQLite数据库相比,更加的轻量级,不需要创建数据库,创建表,写SQL语句等一系列的操作。

缺点:

①SharedPreferences只支持这几种类型的数据:boolean、 int 、float、 long、String
②它不支持条件查询等,所以尽管SharedPreferences操作起来非常方便,但它也只能作为存储方式的一种补充,而无法完全替代SQLite数据库等其他数据存储方式。

3.获取SharedPreferences对象

在这里插入图片描述

由源码可知SharedPreferences本身是一个接口,程序无法直接创建它的实例,但是可以通过Context提供的方法来获取实例。方法有两个

 @Override
    public SharedPreferences getSharedPreferences(String name, int mode) {
   
        return mBase.getSharedPreferences(name, mode);
    }

    /** @removed */
    @Override
    public SharedPreferences getSharedPreferences(File file, int mode) {
   
        return mBase.getSharedPreferences(file, mode);
    }

一般我们是用第一个,即
getSharedPreferences(String name, int mode)来获取它的实例,该方法的第二个参数支持如下几个值:

Context.MODE_PRIVATE :只被本地程序读写。
Context.MODE_WORLD_READABLE :能被其他程序读。
Context.MODE_WORLD_WRITEABLE :能被其他程序读、写。
关于这部分的源码(部分略去)
public abstract class Context {
   
    /** @hide */
    @IntDef(flag = true, prefix = {
    "MODE_" }, value = {
   
            MODE_PRIVATE,
            MODE_WORLD_READABLE,
            MODE_WORLD_WRITEABLE,
            MODE_APPEND,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface FileMode {
   }

    /** @hide */
    @IntDef(flag = true, prefix = {
    "MODE_" }, value = {
   
            MODE_PRIVATE,
            MODE_WORLD_READABLE,
            MODE_WORLD_WRITEABLE,
            MODE_MULTI_PROCESS,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值