PDA

Ver la Versión Completa : Navegacion activitys


rafaxplayer
07/09/14, 09:58:36
Hola compañeros , tengo una duda sobre navegación entre activitys , resulta que tengo una que se encuentra en segundo lugar en la pila y a ella puedo acceder de dos formas:

Una desde la main activity.
Otra desde una notificación.

El problema me surge cuando accedo desde la notificación , porque entonces si la app no estaba activa en la pila solo se encuentra esta y no la main activity y si pulso "inicio" o "Back "se cierra la aplicacion porque no hay ninguna activity anterior en la pila.

Mi duda es:

¿como saber saber si la main activity esta activa o no para acceder a ella con navutils.navigate o iniciarla con startActivity()?

rafaxplayer
11/09/14, 09:33:55
Bueno no se si mi duda no la he planteado bien... nadie sabe alguna solución a esto?

kriogeN
11/09/14, 09:55:56
Puedes sobreescribir onBackPressed para que inicie a la Activity "anterior", si usas FLAG_ACTIVITY_CLEAR_TOP provocará el mismo efecto que pulsar atrás. Lo único malo es que se creará una instancia nueva, y no la instancia que ya tenías antes.

Es decir, si abres la app y tienes A que tiene un EditText y pones un texto, y después vas a B, en condiciones normales volverías a A con el EditText aún relleno.

Si sobreescribes onBackPressed para que haga lo que te he dicho provocará que cuando vayas a B y vuelvas a A el EditText esté vacío. Pero si abres la notificación y se abre B y luego pulsas Back aparecerá A.

Después de todo este rollazo te voy a contar lo que hago yo, que me pasaba algo parecido.

La app abre A, que puedes navegar a B y muchos sitios más. La notificación debe mostrar a B. Pero lo que hago es desde la notificación lanzar a A con un Extra en el que le indico que la estoy abriendo desde una notificación, así que en el onCreate de A compruebo el Extra y si existe lanzo inmediatamente a B. El usuario verá sólo a B, pero al pulsar Back estará A.

rafaxplayer
11/09/14, 21:07:04
jajajaj después de todo el rollazo , con la ultima aclaración me parece una idea perfecta. gracias

rafaxplayer
12/09/14, 08:48:46
Bueno después de pruebas de todo tipo sigo con el mismo problema si mi app esta activa , si no lo esta no hay problema porque desde notificacion con el filtro que me comentaste , crea instancia de mainactivity y pasa a la secundaria y desde la secundaria back a la primera.

pero si mi app esta activa con esto crea una nueva main activity y una nueva secundaria , así que onback pasa a main y si cierras hay otra main en la pila este es el problema.

El tema seria saber si la activity main esta activa o no para en vez de usar tu filtro y crear main para pasar a b , simplemente pasar a b , checkar si main es activa = onBack que no, staractivity y nueva instancia , creo que el tema seria este , a no ser que tengáis alguna idea mejor . ;)

kriogeN
12/09/14, 11:56:43
Usa el FLAG_ACTIVITY_CLEAR_TOP para lanzar la Main desde la notificación, así teóricamente debe destruir toda la pila ya existente.

rafaxplayer
12/09/14, 17:27:39
ahora si hemos dao con la tecla , mira que hace tiempo use las flags pero ya ni me acordaba que existían , gracias.