Tengo un servicio para recibir mensajes. Uso FirebaseMessaging.
Si tengo la app funcionando recibo los mensajes. Si no la tengo en ejecución no recibo los mensajes, si pusiera en el servicio:
B4X:
#StartAtBoot: True
El servicio se ejecutaría nadas más arrancar el teléfono, y recibiría los mensajes. ¿Estoy en lo cierto?
¿Pero como hago para que sea el usuario el que modifique dicho valor?
Osea, que el usuario de la app, pueda decidir en cualquier momento, si sólo recibir mensajes cuando esta la app funcionando (#StartAtBoot: False) o bien que los reciba siempre (#StartAtBoot: True).
Gracias.
Muy buenas.
Así, a bote pronto no se si se podrá hacer que el usuario elija esa opcion.
Lo que si puedes hacer es declarar una variable y tomar una decisión acerca de la notificacion en funcion de esa variable. Me explico.
Si el usuario decide NO notificar, pongo la variable a 0 y, cuando llegue un mensaje, si ésta esta a 0, la descarto, sino, ejecuto la tarea que la procesa.
Me explico???
Un saludo.
Tambien si quieres que el servicio no esté siempre en marcha, y con la sugerencia de Descartex de consultar al usuario y poner una variable con lo que debes hacer, en el Sub Service_Start parar el servicio y asi no recibirá notificaciones, cuando te diga que si, si está parado lo pones en marcha
B4X:
Sub Service_Create
' Leo el fichero donde guardo la variable
' ..........
' ..........
' ..........
' ..........
Sub Service_Start (StartingIntent As Intent)
if Variable = false Then
CancelScheduledService(Me) ' Por si empleas el StartServiceAt
StopService(Me)
En if
' ..........
' ..........
' ..........
' ..........
' EN EL SUB DONDE EL USUARIO DECIDE SI QUIERE NOTIFICACIONES
' Después de pedir que quiere...
' Guardo valor de la variable al fichero si ha cambiado
If Variable then
StartService(NombreDelServicio) ‘ Llamar al Servicio
else
CancelScheduledService(NombreDelServicio) ' Por si empleas el StartServiceAt
StopService(Me)
End if