Android Studio学习(十八)--Sharedpreferences续

        使用缓存减少读取数据库次数,第一次读取数据库将数据保存在缓存中,后面直接从缓存中读取,跳过数据库,可以大大加快读取速度。

一.保存到缓存

SharedPreferences share = getSharedPreferences(name, Context.MODE_PRIVATE);

SharedPreferences.Editor editor = share.edit();

初始化Set<String>,一定要hanshset,不然会是无序,而且如果add时数据已经存在会闪退
Set<String> departments = share.getStringSet(name, new HashSet<String>());

//data是读取数据库得到的数据(list类型)
for(int i=0;i<data.size();i++){
    
//如果set中没有改数据则保存下来
                    
    if(!departments.contains(data.get(i).getSubDepartment_name()))
    departments.add(data.get(i).getSubDepartment_name());

}

editor.putStringSet(name,departments);

editor.apply();

二.读取缓存

SharedPreferences share = getSharedPreferences(name, Context.MODE_PRIVATE);

Set<String> departments = null;

//从sharedPreferences中读取set<String>
departments = share.getStringSet(name,null);

//判断缓存中是否已经存在
if(departments!=null){

   //将Set<String>转换成数组
   String[] item = (String[]) departments.toArray(new String[departments.size()]);
   List<subDepartmentBean> data = new ArrayList<>();;

   for (int j = 0; j < item.length; j++){
       subDepartmentBean bean = new subDepartmentBean();
       bean.setSubDepartment_name(item[j]);
       //保存到list中
       data.add(bean);
   }

   //通过adapter改变前端viewlist
   listView.setAdapter(new subDepartmentAdapter(data, AppointmentActivity.this));

}else{

//缓存中没有数据,读取数据库

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值