当成功发出 http 请求时,我正在使用EventBus将结果发布到片段。当存在一个订阅者和一个发布者关系时,这很有效。
但是,在我的应用程序中,我有一个使用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);
}
}
您可能已经猜到收到数据时会发生什么。
由于有许多具有相同签名的订阅者,等待 a ServerResponse
,因此响应不会转到相应的选项卡,但会在每个片段中接收并显示相同的响应,并且数据会混合。
你知道如何解决这个问题吗?