Hola
Como decia Jack el destripador: Vayamos por partes
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