Spanish StartAtBoot a elección del usuario

IdasI4A

Active Member
Licensed User
Longtime User
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.
 

Descartex

Well-Known Member
Licensed User
Longtime User
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.
 

IdasI4A

Active Member
Licensed User
Longtime User
Gracias, osea pongo: #StartAtBoot: True y lo notifico o no según la configuración del usuario.

Por el momento lo hará así.

Gracias por la sugerencia.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

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

Saludos
 
Top