专业版在前几个版本一直存在一个问题,就是在首页切换Tab的时候每次都会转圈圈,我们已经使用了Retrofit缓存,正常来说读取缓存数据应该很快。转圈圈给我们的感觉是读取缓存很慢,我们开始怀疑Retrofit读取缓存的问题。我们需找到了原因其实是RxJava切换线程的问题,请求缓存从io线程切换回主线程需要等待一定的时间。看一段我们的测试代码。
addSubscription(movieBoardUsecase.requestMainBoard(refresh)
.subscribe(boardTop -> {
time2 = (Formatter.getCurrentMillis() - time);
Log.e("timeretrofit", "" + time2);
}, throwable -> {
}));
time3 = Formatter.getCurrentMillis();
addSubscription(movieBoardUsecase.requestMainBoard(refresh)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(boardTop -> {
Log.e("timeRXthread", "" + (Formatter.getCurrentMillis() - time3 - time2));
getView().setData(boardTop);
}, throwable -> {
}));
第一段我们不切