После многих подходов я в итоге использовал этот, потому что он универсальный, оставил код чистым и решил проблему вызова метода .get () и блокировки потока пользовательского интерфейса. Надеюсь, это поможет.

syncTask блокирует элемент кнопки блокировки во время загрузки изображения, и диалоговое окно прогресса отображается с задержкой - оно показывается некоторое время, прежде чем показывается изображение, но загрузка занимает много времени, кнопка блокируется (оранжевая) и диалоговое окно не отображается.

 public  Bitmap download(String url, ProgressBar progressbar) throws InterruptedException, ExecutionException {
     BitmapDownloaderTask task = new BitmapDownloaderTask(progressbar);
     task.execute(url);
     return task.get();
}

class BitmapDownloaderTask extends AsyncTask<String, Void, Bitmap> {



    public BitmapDownloaderTask(ProgressBar progressbar) {

    }
    @Override
    protected void onPreExecute() {
        dialog = new ProgressDialog(ShowActivity.this);
        dialog.setMessage("Loading");
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
        dialog.show();
    }

    @Override
    protected Bitmap doInBackground(String... Params) {
        return imageLoader.getBitmap(params[0]);

    }
    @Override
    protected void onPostExecute(Bitmap bitmap) {
         dialog.dismiss();


    }
}    

В прослушивателе кнопки просто вызовите функцию загрузки, параметр прогресса - потому что у меня есть круг индикатора выполнения в просмотре изображений - диалог предназначен только для тестирования, чтобы выяснить, почему существует задержка и блокировка. В другом приложении я использую runable, а поток и элемент не блокируются, но в руководствах AsyncTask упоминается как лучшее решение для этого.

Ответы на вопрос(3)

Ваш ответ на вопрос