ProgressDialog не отображается, когда AsyncTask.get () вызвал [duplicate]

Возможный дубликат:
AsyncTask блокирует угрозу пользовательского интерфейса и показывает прогресс-бар с задержкой

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

Все хорошо, ProgressDialog работает правильно, пока я не вызову метод .get () с использованием экземпляра AsyncTask. Я полагаю, это как-то блокирует пользовательский интерфейс. Вот мой AsyncTask:

public class myAsync extends AsyncTask<String, String, List> {

    String message; // for dialog message
    ProgressDialog progress; 
    Intent myIntent;
    Context ctx;

    public myAsync(String message, Context ctx) {
        this.message = message;
        this.ctx = ctx;
        progress = new ProgressDialog(ctx);
    }

    @Override
    protected void onPreExecute() { 
        progress.setMessage(message);
        progress.setIndeterminate(true);
        progress.setCancelable(false);
        progress.show();    
    }

    @Override
    protected List doInBackground(String... params) {
        //returns any list after the task
        return anyList; 
    }

    @Override
    protected void onPostExecute(List result) {
        if(progress.isShowing())
            progress.dismiss();
    }
}

А вот myActivity, которое вызывает AsyncTask:

myAsync asyncTask = new myAsync("Loading...", this);
asyncTask.execute("Any string", "Other string");
asyncTask.get(); // If I comment out this line, ProgressDialog works

После выполнения, когда я попытался записать результат из doInBackground и onPostExecute, то нет проблем. Но если я хочу получить с помощью .get (), результат ProgressDialog не отображается или отображается так мало времени (возможно, 0,2 секунды)

В чем проблема?

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

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