Spanish Minimizar Aplicacion

cwrengifo

New Member
Licensed User
Longtime User
Cordial saludo, aunque he leido todo lo que encuentro por aca, no he podido hacer que mi aplicación pasea a segundo plano sin "Dormir" y siga enviando coordenadas de Gps.

La verdad creo que me he "enredado como spaguetti" con los servicios.

Mil Gracias a quien me pueda dar una mano por aca o por mi correo, [email protected]

Exitos y Bendiciones.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Pasar a "dormir" lo haces con un Activity.Finish, y para que siga enviando coordenadas GPS, mételo en un servicio, si lo pones en el formulario, a la que salgas se parará todo (menos los servcios)

Mirate esto:
[B4A] [Tutorial] Guia rápida del Ciclo de Vida de Android
https://www.b4x.com/android/forum/threads/b4a-tutorial-guia-rápida-del-ciclo-de-vida-de-android.38760/

[B4A] [Tutorial] Módulos de Servicio
https://www.b4x.com/android/forum/threads/b4a-tutorial-módulos-de-servicio.42689/


Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola, arreglaste el problema? si es asi; podrias añadir a la cabecera [SOLUCIONADO] ? Asi mejoramos el foro

Saludos
 
Last edited:

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Creo que mi respuesta no fué lo suficiente extensa, viendo de nuevo tu pregunta me di cuenta de que decias esto:
no he podido hacer que mi aplicación pasea a segundo plano sin "Dormir" y siga enviando coordenadas de Gps.

Parte de la respuesta fué correcta, ya que poniendo el código en un servicio aunque la aplicacion se vaya a un segundo plano seguiria leyendo coordenadas GPS. Para eso solo tenias que poner tu código en un servicio y "autollamarse" cada x tiempo que es el que tu creas conveniente, esto lo puedes hacer asi:

B4X:
' En tu MAIN
Sub Activity_Create(FirstTime As Boolean)
  if FirstTime then StartService(Nombre de tu servicio) ' llamas a tu servicio

'-----------------------
' ----------------------
' -----------------------

' Dentro de tu servicio
Sub Service_Start (StartingIntent AsIntent)
  ' vuelvo a llamar al servicio en el tiempo fijado
  ' ********** emplea uno de los dos ***********
  StartServiceAt("", DateTime.Now + Minutos * DateTime.TicksPerMinute, True) ‘ para minutos
  StartServiceAt("", DateTime.Now + Segundos * DateTime. TicksPerSecond, True) ‘ para segundos
End Sub

Por eso te puse la dirección al tutorial de servicios, por que te explica todo esto, también como hacer que Android no mate el servicio o que cuando reinicies el movil entre ese servicio.

Y siguiendo con tu pregunta, si ademas de esto, quieres que Android no mande a "dormir" cuando esté en tu aplicación, lo puedes hacer asi:


B4X:
    Dim p As PhoneWakeState
    p.KeepAlive ' haces que no vaya a dormir
    p.ReleaseKeepAlive ' quitas la condición de que no vaya a dormir

Lo habitual de este código es poner que no vaya a dormir en el Sub Activity_Resume , y quitarlo cuando salgas de la aplicación en Sub Activity_Pause (UserClosed As Boolean) , pero esto tu sabras donde mejor aplicarlo.

Espero que ahora te quede mas claro todo y quede solucionado tu problema, y si aun asi sigues teniendo problemas solo es cuestión de que preguntes, aqui en el foro hay mucha gente que contesta a preguntas e intenta ayudar a todos. Si tienes un problema con los servicios puedes abrir un post o simplemente hacer la pregunta dentro del tutorial de servicios

Saludos
 
Top