Spanish Cerrar actividad

fchirico

Member
Hola,

Tengo una actividad principal desde la cual INICIA SESION el usuario.

Desde un LAYOUT el usuario puede EJECUTAR otra ACTIVIDAD (que se llama "CargaDePedido") donde carga pedidos, la llamada a la ACTIVIDAD2 la hago así:

En la ACTIVIDAD1

B4X:
Sub btn_carga_pedido_Click
    Activity.RemoveAllViews
    StartActivity(CargaDePedido)
 End Sub
En la ACTIVIDAD2

en el SUB ACTIVITY_CREATE cargo los clientes en una lista solo si "FirstTime es True ", es decir mientras no cambie de usuario en el INICIO DE SESION siempre traigo los mismos clientes, ya que cada usuario tiene asignado sus clientes.

Al salir de la ACTIVIDAD2 lo hago con ACTIVITY.FINISH de esta forma:

B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
    Dim cMenu As String
    cMenu = Activity.Title
    If KeyCode = KeyCodes.KEYCODE_BACK Then 'Si presioné la telca ATRAS
        If cMenu.StartsWith("9-")  Then
            Log("Saliendo de: " & cMenu) 'Esto funciona OK
            Activity.Finish
            Return False
        End If
    End If
End Sub
El tema es que cuando desde la ACTIVIDAD1 vuelvo a la ACTIVIDAD2, esta no toma en el ACTIVITY_CREATE como FIRSTIME.

Entonces la pregunta es:

Cómo puedo hacer para que en el Activity_Create de la ACTIVIDAD2 solo se sea FIRSTIME si el usuario VUELVE A INICIAR SESION (en mi código actual no hace falta salir de la ACTIVIDAD1 para volver a iniciar sesión)

Por favor si no se entiende me avisa.
 

José J. Aguilar

Well-Known Member
Licensed User
Hola fchirico:
Cuando cambias de actividad, no debes quitar todas las vistas (Activity.RemoveAllViews), si no, cuando vuelvas a la primera actividad al pulsar el botón atrás, tu actividad estará vacía y tendrías que volver a cargar tu layout.
Tampoco es necesario hacer un ACTIVITY.FINISH al salir de una actividad.
vuelvo a la ACTIVIDAD2, esta no toma en el ACTIVITY_CREATE como FIRSTIME
Esto es lógico, ya que no es la primera vez que se ejecuta esa actividad, ya se ejecutó antes.
si el usuario VUELVE A INICIAR SESION
¿Con qué código vuelve a iniciar sesión? Puedes hacer que cuando cambie de sesión, se vuelvan a actualizar los datos que necesites.

Te recomiendo que le eches un vistazo a estos tres tutoriales.
- El primero muestra distintas formas de mostrar 2 "pantallas diferentes", ya sean como actividades distintas, o como dos paneles en la misma actividad. (Ten en cuenta que muchas veces no es necesario cambiar de actividad si es un código sencillo para mostrar un panel con datos o algo así:
- El segundo es el ciclo de vida de una app android, ahí verás cuándo se ejecuta cada sub (create, resume, pause...) de una actividad:
- El tercero es sobre CallSubDelayed, con esta sub, puedes llamar a una sub en otra actividad, y pasarle como parámetro lo que quieras (por ej. al cambiar de inicio de sesión, puedes llamar a la función de la actividad 2 para que actualice los datos:
 
Top