Digamos que tenemos dos actividades, Activity1 y Activity2.android - Cómo mostrar el cuadro de diálogo después de que termina la actividad
En el método onClick de Actividad1(), tenemos una llamada para iniciar la actividad 2, si se pulsa un botón determinado:
Intent myIntent = new Intent(Activity1.this, Activity2.class);
Activity1.this.startActivity(myIntent);
Después de acabado() es llamado en Actividad2 y Actividad1 se reanudó, necesito una diálogo para mostrar en Activity1, tan pronto como se reanude.
Antes, simplemente llamado showDialog método (id) en el mismo bloque de onClick de Activity1():
public void onClick(View v) {
if(v == addHole){
//...
Intent myIntent = new Intent(Activity1.this, Activity2.class);
Activity1.this.startActivity(myIntent);
showDialog(END_DIALOG_ID);
}
}
La cuestión es, después de Activity1 reanuda, el diálogo correspondiente a END_DIALOG_ID no es visible, pero el la pantalla se oscurece y no responde (como si el cuadro de diálogo estuviera presente), hasta que se presiona la tecla Atrás.
He intentado poner la llamada showDialog() en los métodos activityResume() y onRestart(), pero ambos bloquean el programa.
También he intentado crear un método AsyncTask en Activity2, con la llamada showDialog() en su onPostExecute(), pero el diálogo no está visible en Activity2.
private class ShowDialogTask extends AsyncTask<Void, Void, Integer> {
/** The system calls this to perform work in a worker thread and
* delivers it the parameters given to AsyncTask.execute() */
protected Integer doInBackground(Void... id) {
//do nothing
return END_DIALOG_ID;
}
/** The system calls this to perform work in the UI thread and delivers
* the result from doInBackground() */
protected void onPostExecute(Integer id) {
super.onPostExecute(id);
showDialog(id);
}
}
Ahora estoy tratando de poner en práctica esta llamando
Activity1.this.startActivityForResult(myIntent, END_DIALOG_REQUEST);
con métodos onActivityResult() de Actividad1 setResult correspondiente() y, pero parece que debe haber una mejor práctica para la implementación de este. Todo lo que necesito es tener un cuadro de diálogo que se muestre en el acabado de Activity2.
Gracias por cualquier ayuda que pueda proporcionar.
Iba a sugerir startActivityForResult y onActivityResult, pero pareces haberlo descubierto por tu cuenta. Para mí, esa es la forma más directa de lograr lo que quieres. – mportuesisf