说到SharePreference ,就显简单说一下Android的五大存储方式吧。
Android 当中数据存储的方式
1.SharedPreference 共享参数
2.File 存储 内部存储,外部存储(SDCard 存储)
3.SQLite 数据库存储
4.ContentProivder 内容提供者
5.网络存储
SharedPreference: 共享参数的特征:
1. 存放轻量级数据的存储方式。
2. 本质上存储为 xml 文件形式,然后通过读取键值对的形式对数据进行操作。
3. 通常是用于存储一些简单的配置信息。
通过共享参数来存数据步骤:
1. 获得 SharedPreference 的对象,getSharedPreference(String ,int); ;
2. 获取 Editor 的对象,通过 SharedPreference.edit() 方法。
3. 调用 Editor 对象的 putXxx(key,value) 的方法,来存放数据。
4. 调用 editor.commit() 方法,提交添加或者修改的内容。
共享参数取出数据的步骤:
1. 获得 SharedPreference 的对象,getSharedPreference(String ,int); ;
2. 调用 SharedPreference 对象中的 getXxx() 的方法,传入相应的 key 值,就能够
获取到数据了。
使用共享参数存放数据的位置:
data/data/< 你的包名>/shared_prefs/….
editor.clear() : 清空所有的数据内容
editor.remove(key): 移除指定键值的数据
sharedpreferences.contains(key): 判断数据中是否包含此键值。
getSharedPreference(Stringname ,intmode); ;
name: 生成的 xml 文件的名称
mode: 生成的文件的权限
MODE_PRIVATE: 私有的 ,的 生成的 xml 写 文件只能被本程序读写 ( 基本上都有这种
模式)
MODE_WORLD_READABLE :生成的 xml 文件只能被其他程序读
MODE_WORLD_WRITEABLE :生成的 xml 文件只能被其他程序写
MODE_MULTI_PROCESS:数据发生更改时,提醒其他进程
经过以上大致的回忆了解,我们做一个封装工具类,供以后日常使用:
工具类呢比较简单,直接贴代码了,不懂的评论留言讨论
package com.dfwy.cxy.edb.utils;
/**
* Created by lenovo on 2016/12/7.
*/
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
/**
* SharePreference封装
*
*
*/
public class PrefUtils {
public static final String PREF_NAME = "config";
public static boolean getBoolean(Context ctx, String key,
boolean defaultValue) {
SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
return sp.getBoolean(key, defaultValue);
}
public static void setBoolean(Context ctx, String key, boolean value) {
SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
sp.edit().putBoolean(key, value).commit();
Log.i("tag","******************************"+sp.getBoolean("is_user_guide_showed",true));
}
public static void setDate(Context ctx,String key,String value){
SharedPreferences sp = ctx.getSharedPreferences(PREF_NAM,
Context.MODE_PRIVATE);
sp.edit().putString(key,value).commit();
}
public static String getData(Context ctx,String key,String defaultValue){
SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
return sp.getString(key,defaultValue);
}
}
至于工具类的使用的haul就直接setData\getData了。