聊聊Android的缓存(二)

Android缓存(二)

  接着上一篇文章,我们要存储数据,选择SharedPreferences,放到这个LoginDataHelper里面封装,仍然有些冗余,没关系,在引入一个新的ServiceConfigManager.java去封装即可。
  ServiceConfigManager也写成单例,之后声明一个私有的存储信息tag,书写get,set,方法,SharedPreferences就被封装好了。
  最后举个例子,比如你要存储的信息叫STUDENT_USER_INFO,那么示例代码示例如下:

public class ServiceConfigManager{

    private String mstrSharedPreferenceName = null;
    private SharedPreferences mshardPreferences = null;
    private static Context context = null;

 private static final String STUDENT_USER_INFO = "STUDENT_USER_INFO";

    //获得单例
     public static ServiceConfigManager getInstance(Context context) {
        ServiceConfigManager.context = context;
        ServiceConfigManager cm = InnerConfigManager.instance;
        return cm;
    }

   private static class InnerConfigManager {
        private static final ServiceConfigManager instance = new ServiceConfigManager(context);
    }

    private ServiceConfigManager(Context context) {
        mstrSharedPreferenceName = new String(context.getPackageName() + "_preferences");
        mshardPreferences = context.getSharedPreferences(mstrSharedPreferenceName,
                Context.MODE_MULTI_PROCESS);
    }

    public static ServiceConfigManager getInstance(Context context) {
        ServiceConfigManager.context = context;
        ServiceConfigManager cm = InnerConfigManager.instance;
        return cm;
    }

    public void setStringValue(String key,
                               String value) {
        SharedPreferences.Editor editor = getSharedPreference().edit();
        editor.putString(key, value);
        editor.commit();
    }

    //登录服务器后返回的用户数据
    public void setLoginDataInfo(String data) {
        setStringValue(STUDENT_USER_INFO, data);
    }

    public String getLoginDataInfo() {
        return getStringValue(STUDENT_USER_INFO, "");
    }
}
  简单的封装了一下SharedPreferences,这样每次都只需调用 ServiceConfigManager.getInstance获取manager的实例,之后调用get,set方法实现存储即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值