【发布时间】:2020-03-05 05:39:29
【问题描述】:
我正在使用带有存储库的 MVVM 模式进行网络调用。
当我单击视图中的按钮时,它会触发视图模型中的保存/获取数据方法,然后调用存储库,其中我正在使用 Retrofit 进行网络操作。
现在我想从我在视图中开始的存储库(onResponse 或 onFailure)中使用正确的消息(如已保存、错误等)关闭我的进度条。
public void onClick(View v) {
ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.setMessage("saving...");
dialog.show();
cuttingUnitViewModel.saveProjectUnit();
}
可以做我正在做的事情还是有更好的选择?
我只想说我想从存储库中返回 NETWORK STATE 和 DATA ,该怎么做?
【问题讨论】:
-
您没有使用 LiveData 来更新您的结果吗?您如何管理将结果传递给您的活动。如果您这样做,只需编写代码以在您的活动/片段中获得结果时隐藏进度条
-
@ljk 1. 我在获取数据时得到响应对象。 2. 我在保存数据时返回 Void。除此之外,我还需要在响应失败时进行处理。
-
我的经验在这里:medium.com/@ostap.radkovskyy/… 基本上你要么使用事件包装器,要么使用一次性事件,或者 @ljk 建议的。但不幸的是,没有一个场景是完美的。
标签: android retrofit2 android-progressbar