【问题标题】:RxJava 2 + Retrofit 2 (or long asynchronous task) + Dagger 2 + MVP VS. change orientationRxJava 2 + Retrofit 2(或长异步任务) + Dagger 2 + MVP VS。改变方向
【发布时间】: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


    【解决方案1】:

    你可以看看这个implementation,它创建了一个 BaseActivity,如果每个 Activity 需要在配置更改后继续存在,它都必须扩展它。

    它利用Dagger2,你可以找到ConfigPersistentComponent here,你只需使用注解@ConfigPersistent 作用域就可以使用它注释需要生存的依赖项,例如 Presenters。

    【讨论】:

      猜你喜欢
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多