ProgressDialog não mostrado quando AsyncTask.get () chamado [duplicate]
Possible Duplicate:
AsyncTask bloqueia a ameaça da interface do usuário e mostra a barra de progresso com atraso
Eu quero mostrar um progressDialog ao recuperar JSON de qualquer servidor. Então, eu usei o AsyncTask como uma solução (não tenho certeza de uma saída diferente).
Tudo está bem, o ProgressDialog funciona corretamente até eu chamar o método .get () usando a instância AsyncTask. Suponho que esteja bloqueando a interface do usuário de alguma forma. Aqui está o meu 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();
}
}
E aqui está o myActivity chamado AsyncTask:
myAsync asyncTask = new myAsync("Loading...", this);
asyncTask.execute("Any string", "Other string");
asyncTask.get(); // If I comment out this line, ProgressDialog works
pós executar, quando tentei registrar o resultado do doBackground e onPostExecute, não há problema. Mas se eu quiser começar com .get (), o resultado ProgressDialog não é mostrado ou mostrado em tão pouco tempo (talvez 0,2 segundos)
Qual é o problema