Пользовательское представление загрузки не отображается при вызове методов show () и dismiss ()

getDashboardData() - это не переменная, вам нужно изменить ее как

   this.dashboardService.getDashboardData().subscribe((result) => {
          console.log(result);
    });
1
задан Aashish Sharma 19 January 2019 в 12:17
поделиться

1 ответ

Как я понимаю, метод uploadImageToServer() выполняет некоторое сетевое действие. Если это так, вы должны сделать это в потоке не-пользовательского интерфейса. Кроме того, в вашем коде catLoadingView.dismiss(); не будет ждать, пока ваш асинхронный процесс не будет выполнен, и сразу же скрывает представление загрузки. Вы должны использовать какой-нибудь метод обратного вызова, чтобы исправить завершение процесса загрузки, а затем отклонить ваше представление.

Это будет выглядеть так:

Ваш интерфейс обратного вызова:

interface MyCallback {
    void onUploaded();
}

ваш метод загрузки:

void upload(MyCallback callback) {
  // some async process on non-UI thread
  callback.onUploaded();
}

Наконец, вызовите ваш метод:

case R.id.socialMediaShareButton:
          catLoadingView.show(getSupportFragmentManager(),"");
          //loadingDialog = LoadingDialog.Companion.get(SocialMediaActivity.this).show();
          uploadImageToServer(new MyCallback() {
              runOnUiThread {
                 catLoadingView.dismiss();
              }
          });
          break;
0
ответ дан David 19 January 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: