我的应用程序集成与MVVM +改造+匕首调用onChanged功能在Android的MVVM第二个呼叫
,当涉及到视图模型我已经使用MutableLiveData与片段注册观察者和视图模型
行为异常因此,当视图加载它调用视图模型和调用Web服务然后onChnaged
函数的观察员将弹出数据,但是当我添加一个按钮单击并调用相同的功能它表现不寻常这里是代码示例。
ViewModel
private MediatorLiveData<Resource<PostCartResponse>> postCartResponse
= new MediatorLiveData<>();
public LiveData<Resource<PostCartResponse>> postProductToCart(
final PostCart postCart) {
postCartResponse.addSource(this.cartRepository.postCart(postCart),
new Observer<Resource<PostCartResponse>>() {
@Override
public void onChanged(@Nullable Resource<PostCartResponse> response) {
postCartResponse.setValue(response);
}
});
return postCartResponse;
}
Fragment
productDetailsViewModel.postProductToCart(new PostCart(1, generatedSku))
.observe(this, new Observer<Resource<PostCartResponse>>() {
@Override
public void onChanged(@Nullable Resource<PostCartResponse> response) {
if (response.status == Status.SUCCESS) {
Timber.d("SUCCESS");
} else if (response.status == Status.INVALID_DATA) {
Timber.d("FAIL");
}
}
});
因此,对于第一次正确地调用和登录成功,但是让说,如果我再次按下按钮,首先它打印在片段中的成功,然后再次将打印成功
任何想法,对这种不寻常行为。