2017-01-29 3 views
1

RxJavaと長いタスクで向きを変えて処理する方法を学び、断片を保持してviewstateを保存する方法について読んでいますが、それでも私にとってはまだ不明です。RxJava 2 + Retrofit 2(または長い非同期タスク)+ Dagger 2 + MVP VS方向を変える

たちは改造を経由してネットワーク要求を持っている、と想像:

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にデータを変換すると、それをドロップしてs私が向きを変えたときにもう一度タルト。修正する最良の解決策は何ですか? MVPはビューとモデル(レトロフィット要求)レイヤを分離するのに役立ちます。答えをありがとう。

答えて

1

implementationをご覧になると、BaseActivityが作成されます。設定変更後もすべてのアクティビティが拡張される必要があります。

それは単に例の発表のために生き残るために必要な依存関係に注釈を付けることたConfigPersistentスコープ@注釈を使用して、あなたがそれを使用する、あなたはConfigPersistentComponenthere見つけることができ、Dagger2を使用しています。

関連する問題