SharedPreferences缓存

本文介绍了Android中数据持久化的四种方式,重点讲解了SharedPreferences的使用,它用于存储APP的配置信息,采用键值对和XML格式保存。示例代码展示了如何进行写入和读取操作。
摘要由CSDN通过智能技术生成

数据持久化就是讲某些数据进行存储,可以实现在某些时机去除想要的数据;

Android中有四种实现数据持久化的方式

分别是1.文件(IO流)读写文件,例如保存网络图片

            2.SOLite数据库嵌入式数据库,例如保存网络数据

            3.SharedPreferences,如APP的配置信息

            4.ContentProvider数据库访问,可为数据封装,为多个应用共享

 

SharedPreferences是以键值对方式储存,以XML方式保存

首先,写入;

创建sharePreference

SharedPreferences SharedSettingthis.getSharedPreferences(“com.xxx”,MODE_PRIVATE);

拿到SharedPreferences编辑对象

Sharedpreferences.Editor editor=sharedSetting.edti();

向里面存数据

editor.putString("username","name");

editor.putString("password","pass");

注意,写完一定记得提交保存

editor.commit();



读取

SharedPreferences sharedSetting1=this.getSharedPreferences("com.xxx","MODE_PRIVATE");

拿到编辑对象

String name=sharedSetting1.getString("username","name");

String password=sharedSetting1.getString("password","pass");




Android中头像本地缓存可以通过使用SharedPreferences或者使用磁盘缓存的方式实现。 1. 使用SharedPreferences缓存头像: 可以将头像图片转化成Base64编码的字符串,然后将其保存在SharedPreferences中。当需要加载头像时,从SharedPreferences中读取Base64字符串,再将其转化为Bitmap对象。 具体实现代码如下: ``` //保存头像到SharedPreferences中 public void saveAvatarToSharedPreferences(Bitmap bitmap) { SharedPreferences sharedPreferences = getSharedPreferences("avatar", MODE_PRIVATE); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); String avatarBase64 = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("avatar", avatarBase64); editor.apply(); } //从SharedPreferences中加载头像 public Bitmap loadAvatarFromSharedPreferences() { SharedPreferences sharedPreferences = getSharedPreferences("avatar", MODE_PRIVATE); String avatarBase64 = sharedPreferences.getString("avatar", null); if (avatarBase64 != null) { byte[] bytes = Base64.decode(avatarBase64, Base64.DEFAULT); return BitmapFactory.decodeByteArray(bytes, 0, bytes.length); } return null; } ``` 2. 使用磁盘缓存方式缓存头像: 可以使用Android中的LruCache或者DiskLruCache类来实现磁盘缓存头像。LruCache是一种内存缓存,而DiskLruCache则是一种磁盘缓存。 具体实现代码如下: ``` //初始化DiskLruCache private void initDiskLruCache() throws IOException { File cacheDir = getExternalCacheDir(); if (cacheDir != null) { int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; diskLruCache = DiskLruCache.open(cacheDir, versionCode, 1, 10 * 1024 * 1024); } } //保存头像到DiskLruCache中 public void saveAvatarToDiskLruCache(String key, Bitmap bitmap) throws IOException { if (diskLruCache == null) { initDiskLruCache(); } if (diskLruCache != null) { DiskLruCache.Editor editor = diskLruCache.edit(key); if (editor != null) { OutputStream outputStream = editor.newOutputStream(0); bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream); editor.commit(); } } } //从DiskLruCache中加载头像 public Bitmap loadAvatarFromDiskLruCache(String key) throws IOException { if (diskLruCache == null) { initDiskLruCache(); } if (diskLruCache != null) { DiskLruCache.Snapshot snapshot = diskLruCache.get(key); if (snapshot != null) { InputStream inputStream = snapshot.getInputStream(0); return BitmapFactory.decodeStream(inputStream); } } return null; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值