Hola:
La mejor forma de hacerlo para que el Sistema Operativo no te mate la aplicacion es creando el código en un servicio.
Crea un modulo de servicio en : Project/Add New Module/Service Module
Para llamarlo desde el aplicativo lo puedes hacer asi:
StartService(NombredelServicio)
Si solo quieres que funcione el servicio , despues de llamarlo puedes finalizar la aplicación (no te preocupes que el servicio seguirá en marcha) :
StartService(NombredelServicio)
Activity.Finish
En
Sub Process_Globals , crea las variables que te interese
En
Sub Service_Create , inicializa las variables, "teoricamente" solo entrará aqui cuando crees el servicio, y digo teoricamente por que el Sistema Operativo podria matar el servicio y volver a entrar en el como si fuera la primera vez (lo digo por experiencia
)
En
Sub Service_Start (StartingIntent As Intent) , haz lo que quieras hacer de tu programa, y al final, para que vuelva a llamar al servicio puedes hacerlo asi
Sub Service_Start (StartingIntent As Intent)
' escribe tu codigo aqui
' ............
' ............
' ............
' Esto llama al servicio cada x minutos (los que pongas en NumerodeMinutos)
StartServiceAt("", DateTime.Now + NumerodeMinutos * DateTime.TicksPerMinute, True)
' si minutos es mucho tiempo, puedes llamarlo cada x segundos (NumerodeSegundos)
StartServiceAt("", DateTime.Now + NumerodeSegundos * DateTime.TicksPerSecond, True)
End Sub
Para parar el servicio desde tu aplicación si está en marcha, puedes hacerlo así:
' Si IsPaused = True, el servicio está parado
If IsPaused(NombredelServicio) = False Then ' Si el servicio está en marcha.
CancelScheduledService(NombredelServicio) ' Para el StartServiceAt
StopService(NombredelServicio)
end If
En
Sub Service_Destroy , entrará cuando el servicio lo elimine el Sistema Operativo, o tu desde el Administrador de Aplicaciones.
Si quieres un consejo, pon LOG en todos esos Sub y asi sabrás como se comporta.
Saludos