Spanish [SOLUCIONADO]No consigo salir de mi APP

cpedgarbm

Member
Licensed User
Amigos solicito su valiosa ayuda, no logro salir de mi aplicación pues al confirmar el KeyCodes.KEYCODE_BACK me cierra la aplicación pero sigue estando en la memoria, por lo que al volver a abrirla me la abre pero con el servicio cerrado (en blanco).

Estoy intentando cerrar definitivamente mi APP o bien que aun y cuando permanezca en la memoria, al activarla nuevamente me abra el Main inicial.

Gracias anticipadas.
 

Attachments

  • proyecto.zip
    301.1 KB · Views: 257

EduardoGodinez1975

Member
Licensed User
Longtime User
asegurate de no dejar ningun activity abierto, me refiero a que al momento de ir a tu otro modulo le des Activity.Finish al actual, esto aplica hasta para el main. (Todos en pocas palabras.)
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Como decia Jack el destripador: Vayamos por partes :D

por lo que al volver a abrirla me la abre pero con el servicio cerrado (en blanco).

Te pasa eso por que has puesto como condición para que cargues el Layout que sea FirstTime = true
If FirstTime Then
Activity.LoadLayout("Main")
End If
No puedes ponerle esa condición, por que a la que se recargue el formulario por girar (no es tu caso) o por otra circustancia el FirstTime será False. No es buena práctica hacer eso.

Estoy intentando cerrar definitivamente mi APP o bien que aun y cuando permanezca en la memoria, al activarla nuevamente me abra el Main inicial.
Ya está contestado arriba

Sub Activity_KeyPress(KeyCode As Int) As Boolean
Dim i As Int
If KeyCode = KeyCodes.KEYCODE_BACK Then
i = Msgbox2("¿Desea salir?", "Confirmar", "Si","","No", Null)
Select Case i
Case DialogResponse.POSITIVE ' pulso el boton si
'StartService (Buckinghampolici)
'Activity.Finish
salida=True
'Return False 'sale del programa pero con elservicio activado estara "minimizado"
'Activity.finish
Case DialogResponse.NEGATIVE 'pulso el boton no
Return True ' con esto vuelves al programa, si no pones nada sale de el
End Select
End If
End Sub

En el caso positivo al poner un Return a False ya lo hacias bien, pero como tenias la carga del LayOut con FirstTime por eso no te funcionaba, y ahí empezaron todos los problemas.



Tienes que utilizar ExitApplication cierra por completo la app.
Es mala práctica (no lo digo yo, si no Erel) emplear el ExitApplication, hay que dejar que el sistema gestione las aplicaciones en segundo plano, y ya la parará del todo si lo cree conveniente a nivel de memoria.

' en el formulario WebView
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
Activity.LoadLayout("WebView")
ProgressDialogShow("Por favor espere...")
WebView1.loadURL("http://www.buckingham.edu.mx/indexinicio.php")
End If
Aqui te pasa lo mismo pero peor que en main, por que a la que salgas ya no entras con FirstTime = true a menos que mates toda la aplicación.

Sub Activity_Resume
' en el formulario WebView
Log(Main.salida)
If Main.salida=False Then
If WebView1.Visible=False Then
WebView1.Visible=True
End If
Else
Activity.finish <----------- No se cumplirá nunca
ExitApplication <----------- No se cumplirá nunca
End If
End Sub

La condición de que salida = True no se cumplirá nunca, por que en el momento que entras aqui en WebView, main se va a Pause
Y si en main intentas salir y pones salida = true, ya no estarás en este activity, y ademas main se irá a pause

If KeyCode = KeyCodes.KEYCODE_BACK Then
WebView1.Visible=False
StartActivity("Main")
Return True
End If
Este código si no lo pones funciona mejor, main ya está en marcha, a la que salga de aqui vuelves a el, asi que no hace falta que lo llames, y el Return = True haces que consumas el evento pero diciendole que sigas en el activity, asi que es un poco incongruente, lo dicho, no pongas nada e irá bien.

Te aconsejo que leas el tutorial: [B4A] [Tutorial] Guia rápida del Ciclo de Vida de Android
https://www.b4x.com/android/forum/t...ia-rápida-del-ciclo-de-vida-de-android.38760/
y ahí comprenderás que pasa cada vez que entras, sales o pulsas una tecla en tu APP


Saludos
 

cpedgarbm

Member
Licensed User
Agradezco infinitamente se hayan tomado el tiempo para contestar mi duda, definitivamente ha sido valioso su apoyo.
 
Top