Skip to content

Commit 295258d

Browse files
committed
fixed: let query callback running in main thread for CACHE_THEN_NETWORK
1 parent 1be8e9b commit 295258d

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

core/src/main/java/cn/leancloud/core/StorageClient.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,19 @@ public ObservableSource apply(Throwable throwable) throws Exception {
7070
return observable;
7171
}
7272

73+
public Observable wrapObservableNoResume(Observable observable) {
74+
if (null == observable) {
75+
return null;
76+
}
77+
if (asynchronized) {
78+
observable = observable.subscribeOn(Schedulers.io());
79+
}
80+
if (null != defaultCreator) {
81+
observable = observable.observeOn(defaultCreator.create());
82+
}
83+
return observable;
84+
}
85+
7386
private Observable wrapObservableInBackground(Observable observable) {
7487
if (null == observable) {
7588
return null;
@@ -78,9 +91,7 @@ private Observable wrapObservableInBackground(Observable observable) {
7891
if (asynchronized) {
7992
observable = observable.subscribeOn(scheduler);
8093
}
81-
if (null != defaultCreator) {
82-
observable = observable.observeOn(scheduler);
83-
}
94+
observable = observable.observeOn(scheduler);
8495
return observable;
8596
}
8697

@@ -221,7 +232,7 @@ public List<LCObject> apply(LCQueryResult o) throws Exception {
221232
return o.getResults();
222233
}
223234
});
224-
result = wrapObservableInBackground(Observable.concat(cacheResult, networkResult));
235+
result = wrapObservableNoResume(Observable.concat(cacheResult, networkResult));
225236
break;
226237
case NETWORK_ELSE_CACHE:
227238
queryResult = queryRemoteServer(authenticatedUser, validPath, query);

0 commit comments

Comments
 (0)