【发布时间】:2017-01-29 14:55:29
【问题描述】:
学习如何使用 RxJava 和长任务处理更改方向,阅读有关保留片段和一些保存视图状态的内容,但对我来说仍然不清楚。
想象一下,我们通过改造有网络请求:
Retrofit retrofit = ApiClient.getClient(); //get retrofit instance
retrofit.create(ApiInterface.class).getImageList() // get list of image objects
.map(this::sleepDear)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::setupRecyclerView);
sleepDear()
public ImageResponse sleepDear(ImageResponse response) throws InterruptedException {
for (int i = 0; i < 5; i++) {
Log.d(TAG, "SLEEP");
TimeUnit.SECONDS.sleep(1);
}
return response;
}
setupRecyclerView()
public void setupRecyclerView(ImageResponse response) {
bar.setVisibility(View.GONE);
Log.d(TAG, "response size " + response.getImageList().size());
ImageAdapter adapter = new ImageAdapter(MainActivity.this, response.getImageList());
recyclerView.setAdapter(adapter);
}
sleepDear() 方法模拟长时间计算(5 秒),然后 setupRecyclerView() 将数据从请求转换为 recyclerview,当我改变方向时,它会下降并重新开始。什么是修复的最佳解决方案? MVP 可以帮助我分离视图和模型(改造请求)层。谢谢你的回答。
【问题讨论】:
标签: android orientation mvp dagger-2 rx-java2