Я пытаюсь показать ProgressDialog, когда список загружает данные в AsyncTask, но «exito» в onPostExecute никогда не является истинным, и диалог никогда не увольняется. Я попытался удалить if (exito)
, но progressDialog уволит, и список будет снят через несколько секунд, и это не я хочу. Я хочу, чтобы прогресс progressDialog показывался во время загрузки, а когда он загружен, отмените фрагмент progressDialog и change.android - doInBackground return always false
Где моя ошибка? Благодаря
private class ATCargarProductos extends AsyncTask<Void, Integer, Boolean>{
boolean terminado = false;
Bundle bdl;
FragmentTransaction transaction;
ProgressDialog progressDialog;
ArrayList<ItemDetails> results = new ArrayList<ItemDetails>();
public ATCargarProductos(FragmentTransaction transaction){
this.transaction = transaction;
}
@Override
protected Boolean doInBackground(Void... params) {
if (compruebaConexion()) {
rellenaLista(new CallBack() {
@Override
public void onSuccess(final ArrayList<Comida> listaComidas) {
for (int i = 0; i < listaComidas.size(); i++) {
ItemDetails item_details = new ItemDetails(listaComidas.get(i));
if (item_details.getTipo().equals("B")) {
results.add(item_details);
}
}
Fragment fragmentProductos = new FragmentProductos();
bdl = new Bundle(2);
bdl.putInt("tipoProducto", 1);
bdl.putParcelableArrayList("resultados", results);
fragmentProductos.setArguments(bdl);
completado = true;
}
@Override
public void onFail(String msg) {
}
});
return completado;
} else {
return false;
}
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(getActivity(), R.style.AppTheme_Dark_Dialog);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Cargando lista...");
progressDialog.show();
}
@Override
protected void onPostExecute(Boolean exito) {
super.onPostExecute(exito);
if (exito) {
progressDialog.dismiss();
transaction.commit();
}
}
}
ли 'compruebaConexion' когда-нибудь правда? Вызывается ли исключение, которое предотвращает установку «completado» в true? (поставить try/catch в onSuccess). –
Да, это правда. Этот метод проверяет только доступ к Интернету. – cnbandicoot