http 要求が正常に行われたときに、結果をフラグメントに投稿するためにEventBusを使用しています。これは、1 つのサブスクライバーと 1 つのパブリッシャーの関係がある場合にうまく機能します。
ただし、私のアプリケーションでは、ViewPager
タブ付きを使用する画面があります。また、ページは非常に似ているため、各タブに対応する異なるパラメーターを持つ同じフラグメントを使用して、データをダウンロードします。
Fragment は次のように見えます。
public class MyFragment extends Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}
public void onEvent(ServerResponse response) {
updateUi(response);
}
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}
そして、データが受信されたときに何が起こるかはすでに推測できます。
同じ署名を持つ多くのサブスクライバーが を待っているServerResponse
ため、応答は対応するタブに移動しませんが、同じ応答が受信され、すべてのフラグメントで表示され、データが混在します。
これを解決する方法はありますか?