Skip to content

Commit 557f657

Browse files
author
alafighting
committed
修正缓存策略
1 parent 124d6fe commit 557f657

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

app/src/main/java/com/im4j/kakacache/rxjava/demo/MainActivity.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
import android.widget.Button;
88

99
import com.im4j.kakacache.rxjava.netcache.RxRemoteCache;
10-
import com.im4j.kakacache.rxjava.netcache.strategy.FirstCacheStrategy;
10+
import com.im4j.kakacache.rxjava.netcache.strategy.FirstTimeStrategy;
1111

1212
import java.util.concurrent.TimeUnit;
1313

14+
import rx.Observable;
15+
1416
/**
1517
* Demo主界面
1618
* @version alafighting 2016-06
@@ -27,8 +29,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
2729

2830
btnTest = (Button) findViewById(R.id.btn_test_cache);
2931
btnTest.setOnClickListener(view -> {
30-
remote().compose(RxRemoteCache.transformer(KEY_CACHE, new FirstCacheStrategy())).subscribe(data -> {
31-
Log.e("main", "next data="+data);
32+
remote().compose(RxRemoteCache.transformer(KEY_CACHE, new FirstTimeStrategy())).subscribe(data -> {
33+
Log.e("main", "next data=" + data);
3234
}, error -> {
3335
Log.e("main", "error", error);
3436
}, () -> {
@@ -38,6 +40,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
3840
}
3941

4042
private rx.Observable<String> remote() {
43+
Log.e("main", "run remote1");
4144
return rx.Observable.just("test remote").delay(3, TimeUnit.SECONDS);
4245
}
4346

library/src/main/java/com/im4j/kakacache/rxjava/manager/RxCacheManager.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ public final void call(Subscriber<? super T> subscriber) {
2020
execute(subscriber);
2121
} catch (Throwable e) {
2222
onError(subscriber, e);
23-
return;
2423
}
2524

2625
subscriber.onCompleted();

library/src/main/java/com/im4j/kakacache/rxjava/netcache/strategy/BasicCacheStrategy.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515
abstract class BasicCacheStrategy<T> implements CacheStrategy {
1616

1717
Observable<ResultData<T>> loadCache(String key) {
18+
Log.e("Strategy", "loadCache key="+key);
1819
return RxRemoteCache.load(key).map(it -> new ResultData<>(ResultFrom.Cache, key, (T) it));
1920
}
2021

2122
Observable<ResultData<T>> loadRemote(String key, Observable<T> source) {
2223
return source.map(it -> {
24+
Log.e("Strategy", "save key="+key+", value="+it);
2325
RxRemoteCache.save(key, it).subscribe(status -> Log.e("save status", "status="+status) );
24-
Log.e("transformer", "save key="+key+", value="+it);
25-
return new ResultData<T>(ResultFrom.Remote, key, it);
26+
return new ResultData<>(ResultFrom.Remote, key, it);
2627
});
2728
}
2829

library/src/main/java/com/im4j/kakacache/rxjava/netcache/strategy/FirstCacheStrategy.java renamed to library/src/main/java/com/im4j/kakacache/rxjava/netcache/strategy/FirstTimeStrategy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66
import rx.schedulers.Schedulers;
77

88
/**
9-
* 优先缓存
9+
* 谁先响应,处理谁
1010
* @version alafighting 2016-06
1111
*/
12-
public class FirstCacheStrategy<T> extends BasicCacheStrategy<T> {
12+
public class FirstTimeStrategy<T> extends BasicCacheStrategy<T> {
1313

1414
@Override
1515
public Observable<ResultData<T>> execute(String key, Observable source) {
1616
return Observable.concat(
1717
loadCache(key),
1818
loadRemote(key, source)
19-
).first(it -> ((ResultData<T>)it).data != null).subscribeOn(Schedulers.io());
19+
).first(it -> ((ResultData<T>) it).data != null).subscribeOn(Schedulers.io());
2020
}
2121

2222
}

0 commit comments

Comments
 (0)