《数据存储全方案——详解持久化技术》笔记

《第一行代码》数据存储全方案——详解持久化技术 的笔记

Android系统中实现数据持久化功能的3种方式

文件存储、SharedPreference存储以及数据库存储

SharedPreferences存储

SharedPreferences是使用键值对的方式来存储数据的。

将数据存储到SharedPreferences中

首先需要获得SharedPreferences对象。Android中主要提供了3种方法得到SharedPreferences对象
1.Context类中的getSharedPreferences()方法
接收两个参数
第一个参数用于指定SharedPreferences文件的名称,如果指定文件不存在则会创建一个,SharedPreferences文件都是存放在/data/data//shared_prefs/目录下的。
第二个参数用于指定操作模式,目前只有MODE_PRIVATE这一种模式可选。
只有当前的应用程序才可以对这个SharedPreferences文件进行读写。
2.Activity类中的getPreferences()方法
它只接收一个操作模式参数,会将当前活动的类名作为SharedPreferences的文件名。
3.PreferenceManager类的getDefaultSharedPreferences()方法
静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。得到SharedPreferences对象后,就开始向SharedPreferences文件中存储数据了。
三步实现:
(1)调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
(2)向SharedPreferences.Editor对象中添加数据。
(3)调用apply()方法提交数据。

SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",28);
editor.putBoolean("married",false);
editor.apply();

结合json使用,存储对象List

public static void saveBeanByFastJson(Context context, String key, Object obj) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(key,Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        String objString = JSON.toJSONString(obj);

        Log.d(TAG, "saveBeanByFastJson: " + objString);
        // fastjson的方法,需要导包的
        editor.putString(key, objString).commit();
    }

    public static <T> List<T> getBeanByFastJson(Context context, String key, Class<T> clazz) {
        String objString = context.getSharedPreferences(key,Context.MODE_PRIVATE).getString(key, "");
        Log.d(TAG, "getBeanByFastJson: " + objString);
        return JSON.parseArray(objString,clazz);
    }

从SharedPreferences中读取数据

getBoolean(key,false); getInt getString等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值