AsyncTask bloqueia o thread da interface do usuário e mostra a barra de progresso com atraso

O My AsyncTask está bloqueando o elemento do botão de bloqueio durante o download da imagem e a caixa de diálogo de progresso é exibida com atraso - é exibida por um tempo antes da imagem ser exibida, mas o download leva muito tempo e o botão é bloqueado (laranja) e a caixa de diálogo não é exibid

 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();


    }
}    

No ouvinte de botão, basta chamar a função de download, o parâmetro progress é porque eu tenho um círculo de barras de progresso no imageview - a caixa de diálogo é apenas para teste, para descobrir por que existe o atraso e o bloqueio. Em outro aplicativo, eu uso o runable e o thread e o elemento não estão bloqueados, mas nos tutoriais o AsyncTask é mencionado como melhor solução para iss

questionAnswers(3)

yourAnswerToTheQuestion