我使用MVP。我在视图中显示和关闭进度对话框,并从演示器中的 firebase/firestore 检索数据,使用回调将数据传递给视图。
但是加载数据时,进度对话框会在 UI 中冻结。从firebase/firestore获取数据时,是否有任何方法可以使进度对话框保持旋转?
在视图中显示对话框:
progressDialog = Utils.showProgressDialog(getContext(), getString(R.string.progress_msg_loading));
menuListPresenter.getMenuList(currentStore.getId());
在演示者中加载数据:
@Override
public void getMenuList(String companyId) {
this.companyId = companyId;
if (Utils.isNullOrEmpty(companyId)) {
view.onError(Constants.EMPTY_FIRESTORE_RESULT);
} else {
DocSnippets.getInstance().listenProductStatus(companyId, this);
}
}
传递数据以在演示者中查看:
@Override
public void onProductStatusChanged(ArrayList<Product> products) {
if (products != null && products.size() > 0) {
view.menuOnChanged(products);
}
}
在视图中关闭对话框:
@Override
public void menuOnChanged(ArrayList<Product> products) {
if (progressDialog != null && progressDialog.isShowing()) progressDialog.dismiss();
// other code
}