多年来,我一直在开发与MVP模式Android应用程序,但现在我正在努力学习MVVM与ViewModel和LiveData
在下面的示例中,我不知道如何根据POST或GET请求传达失败或成功的结果Retrofit
与MVP之前,我将与使用侦听器与任何沟通主持人listener.onTodoFetched()或listener.onTodoFetchError()反应,然后根据不同的哪个方法被调用。我还应该以这种方式与ViewModel班级交流吗?
获取TodoRepository.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;
}
Run Code Online (Sandbox Code Playgroud)
更新:
根据答案和进一步研究,可以使用以下方法: