PDA

Ver la Versión Completa : Volver a la primera actividad, no crear una nueva!


davidddp
26/06/13, 16:14:42
Hola, tengo un problema:

Tengo creando un juego para Android, que sus principales actividades son 3:

Pantalla Principal(Menú)
Juego
Puntuaciones.


1 --> 2 --> 3 ---> 1

Pues el problema es el siguiente: Entras en el menú, seleccionas jugar y pasas a la 2ª actividad(el juego), terminas de jugar y pasas a la 3ª activity puntuaciones (una vez que paso a puntuaciones finalizo la actividad Juego para que si das al botón de atras no vuelvas al juego). Pues en la pantalla de Puntuaciones hay un boton para volver a la Pantalla Principal de nuevo (por si quieres volver a jugar), pues aquí debería volver pero reiniciando la actividad principal con el onRestart() pero no! vuelve a crear una nueva actividad principal(En este momento tengo dos actividades exactamente iguales). Entonces si pulso en finalizar del menu de esta actividad, se cierra esa actividad pero vuelve a salir la primera actividad(Que es la misma).

Espero que me halláis entendido, no quiero que me digáis: "leete los ciclos de vida" me los he leido y visto videos 200 veces y lo entiendo pero no entiendo porque me hace esto.

Que codego debo poner para regresar a la primera actividad sin crear una nueva?

mocelet
26/06/13, 17:12:39
Leete los cicl... nooo, pero los FLAGs de los Intent sí :)

http://developer.android.com/guide/components/tasks-and-back-stack.html

Supongo que con añadir el flag FLAG_ACTIVITY_CLEAR_TOP al Intent te vale

davidddp
28/06/13, 03:29:41
Ok, solucionado. Lo pongo por si alguien lo necesita. No he vuelto a la primera, pero cuando estoy en la ultima elimino todas y creo una nueva que es como si acabara de empezar:

Intent i=new Intent(Risultato.this,Suma.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //Elimina las otras activity
startActivity(i);

rafaxplayer
28/06/13, 08:27:58
Si pero mi pregunta es si le das al boton back ? al no haber activitys en pausa se termina el juego y debes lanzar la aplicacion otra vez no?

A mi me gustaria saber si hay alguna forma de controlar la acción a realizar del botón "Back" de los dispositivos.

kriogeN
28/06/13, 08:39:18
Sobreescribiendo el método onBackPressed, si se cumple la condición para volver, llamas al método de la clase padre. Y si no simplemente acabas sin hacer nada.

@Override
public void onBackPressed() {
if (concion_para_terminar)
super.onBackPressed();
}

rafaxplayer
28/06/13, 12:21:48
Sobreescribiendo el método onBackPressed, si se cumple la condición para volver, llamas al método de la clase padre. Y si no simplemente acabas sin hacer nada.

@Override
public void onBackPressed() {
if (concion_para_terminar)
super.onBackPressed();
}

Aja! ese método aun no lo conocía , gracias