[多年来,我一直在以MVP模式开发Android应用,但现在我正尝试通过MVVM
和ViewModel
学习LiveData
在下面的示例中,我不了解如何通过POST
向GET
或Retrofit
请求传达失败或成功的结果
[在使用MVP之前,我将使用侦听器与listener.onTodoFetched()
或listener.onTodoFetchError()
通信演示者,然后根据调用的方法做出不同的反应。我还应该以这种方式与我的ViewModel
类进行交流吗?
FetchTodoRepository.java
public MutableLiveData<String> fetchTodo() {
retrofitService.getRetrofitService().create(Endpoints.class).getTodo().enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if (response.isSuccessful() && response.body() != null) {
listener.onTodoFetched(response.body()); //ViewModel equivalent?
} else {
listener.onTodoFetchError(response.message()); //ViewModel equivalent?
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
listener.onTodoFetchError(t.getMessage()); //ViewModel equivalent?
}
});
return mutableLiveData;
}