public final class RxCache
extends java.lang.Object
描述:缓存统一入口类
主要实现技术:RxJava+DiskLruCache(jakewharton大神开源的LRU库)
主要功能:
1.可以独立使用,单独用RxCache来存储数据
2.采用transformer与网络请求结合,可以实现网络缓存功能,本地硬缓存
3.可以保存缓存 (异步)
4.可以读取缓存(异步)
5.可以判断缓存是否存在
6.根据key删除缓存
7.清空缓存(异步)
8.缓存Key会自动进行MD5加密
9.其它参数设置:缓存磁盘大小、缓存key、缓存时间、缓存存储的转换器、缓存目录、缓存Version
使用说明:
RxCache mRxCache = new RxCache.Builder(this)
.appVersion(1)//不设置,默认为1
.diskDir(new File(getCacheDir().getPath() + File.separator + "data-mCache"))//不设置,默认使用缓存路径
.mDiskConverter(new SerializableDiskConverter())//目前只支持Serializable缓存
.diskMax(20*1024*1024)//不设置, 默为认50MB
.build();
| Modifier and Type | Class and Description |
|---|---|
static class |
RxCache.Builder |
| Modifier and Type | Field and Description |
|---|---|
static long |
CACHE_NEVER_EXPIRE |
| Constructor and Description |
|---|
RxCache() |
| Modifier and Type | Method and Description |
|---|---|
<any> |
clear()
清空缓存
|
<any> |
containsKey(java.lang.String key)
是否包含
|
int |
getAppVersion() |
CacheCore |
getCacheCore() |
java.lang.String |
getCacheKey() |
long |
getCacheTime() |
android.content.Context |
getContext() |
IDiskConverter |
getDiskConverter() |
java.io.File |
getDiskDir() |
long |
getDiskMaxSize() |
<T> <any> |
load(java.lang.reflect.Type type,
java.lang.String key)
获取缓存
|
<T> <any> |
load(java.lang.reflect.Type type,
java.lang.String key,
long time)
根据时间读取缓存
|
RxCache.Builder |
newBuilder() |
<any> |
remove(java.lang.String key)
删除缓存
|
<T> <any> |
save(java.lang.String key,
T value)
保存
|
<T> <any> |
transformer(CacheMode cacheMode,
java.lang.reflect.Type type)
缓存transformer
|
public static final long CACHE_NEVER_EXPIRE
public RxCache.Builder newBuilder()
public <T> <any> transformer(CacheMode cacheMode, java.lang.reflect.Type type)
cacheMode - 缓存类型type - 缓存clazzpublic <T> <any> load(java.lang.reflect.Type type,
java.lang.String key)
type - 保存的类型key - 缓存keypublic <T> <any> load(java.lang.reflect.Type type,
java.lang.String key,
long time)
type - 保存的类型key - 缓存keytime - 保存时间public <T> <any> save(java.lang.String key,
T value)
key - 缓存keyvalue - 缓存Valuepublic <any> containsKey(java.lang.String key)
public <any> remove(java.lang.String key)
public <any> clear()
public long getCacheTime()
public java.lang.String getCacheKey()
public android.content.Context getContext()
public CacheCore getCacheCore()
public IDiskConverter getDiskConverter()
public java.io.File getDiskDir()
public int getAppVersion()
public long getDiskMaxSize()