RxCache用于 Android 和 Java 的響應式緩存庫
RxCache 是一個用于 Android 和 Java 的響應式緩存庫,可將緩存需求轉(zhuǎn)換為一個接口進行配置。
RxCache 的靈感來源于 Retrofit ,目標是像 Picasso 緩存圖片一樣,毫不費力緩存數(shù)據(jù)對象。
當提供一個 observable、 single、 maybe 或 flowable 這些由耗時操作提供的數(shù)據(jù)時,RxCache 會確定是否需要 subscribe ,或覆蓋先前緩存的數(shù)據(jù)。此決定是基于 RxCache 的 Providers 進行配置的。
架構圖:

Usage
使用盡可能多的方法定義 interface 來創(chuàng)建 Provider 以緩存數(shù)據(jù):
interface Providers {
@ProviderKey("mocks")
Observable<List<Mock>> getMocks(Observable<List<Mock>> oMocks);
@ProviderKey("mocks-5-minute-ttl")
@LifeCache(duration = 5, timeUnit = TimeUnit.MINUTES)
Observable<List<Mock>> getMocksWith5MinutesLifeTime(Observable<List<Mock>> oMocks);
@ProviderKey("mocks-evict-provider")
Observable<List<Mock>> getMocksEvictProvider(Observable<List<Mock>> oMocks, EvictProvider evictProvider);
@ProviderKey("mocks-paginate")
Observable<List<Mock>> getMocksPaginate(Observable<List<Mock>> oMocks, DynamicKey page);
@ProviderKey("mocks-paginate-evict-per-page")
Observable<List<Mock>> getMocksPaginateEvictingPerPage(Observable<List<Mock>> oMocks, DynamicKey page, EvictDynamicKey evictPage);
@ProviderKey("mocks-paginate-evict-per-filter")
Observable<List<Mock>> getMocksPaginateWithFiltersEvictingPerFilter(Observable<List<Mock>> oMocks, DynamicKeyGroup filterPage, EvictDynamicKey evictFilter);
}評論
圖片
表情
