当改造失败或成功处理请求时,如何在存储库和ViewModel类之间进行通信?

问题描述 投票:0回答:1

[多年来,我一直在以MVP模式开发Android应用,但现在我正尝试通过MVVMViewModel学习LiveData

在下面的示例中,我不了解如何通过POSTGETRetrofit请求传达失败或成功的结果

[在使用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;
}
android mvvm android-livedata android-viewmodel
1个回答
0
投票
当您将mvvm与livedata一起使用时,您实际上不需要使用接口将数据传递给viewmodel。
© www.soinside.com 2019 - 2024. All rights reserved.