Как я понимаю, метод 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;