Estoy tratando de mostrar un diálogo de progreso durante el método onCreate() de una de mis actividades, hacer el trabajo para llenar la pantalla hecha en un hilo y luego cerrar el diálogo de progreso.Android runOnUiThread explicación
Aquí es mi onCreateMethod()
dialog = new ProgressDialog(HeadlineBoard.this);
dialog.setMessage("Populating Headlines.....");
dialog.show();
populateTable();
El método populateTable contiene mi hilo y el código para cerrar el diálogo, pero por alguna razón. La actividad aparece en blanco durante aproximadamente 10 segundos (haciendo el trabajo populateTable()), y luego veo la pantalla. Nunca veo el diálogo mostrado, ninguna idea?
Aquí está el populateTable() Código:
//Adds a row to the table for each headline passed in
private void populateTable() {
new Thread() {
@Override
public void run() {
//If there are stories, add them to the table
for (Parcelable currentHeadline : allHeadlines) {
addHeadlineToTable(currentHeadline);
}
try {
// code runs in a thread
runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.dismiss();
}
});
} catch (final Exception ex) {
Log.i("---","Exception in thread");
}
}
}.start();
}
'Si hay historias, agrégalas a la tabla'. Ejecuta este código en el hilo de UI, no en el hilo que ha creado. –
no estoy seguro de lo que está sugiriendo? – user1154644
Mover todo el código en runOnUiThread out para anular run(), solo deje 'dialog.dismiss();' –