Spanish [SOLUCIONADO]#StartAtBoot: true no me funciona.

mvera

Active Member
Licensed User
Longtime User
hola.

tengo una aplicación que lee datos y una via webservice y cuando detecta cambios hace una notificacion.
me funciona bien cuando activo la aplicación , pero cuando reinicio el teléfono sin activar la aplicación no manda la notificación.

tengo un servicio que usa
#Region Service Attributes
#StartAtBoot: true
#StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Cualquier idea sirve , gracias.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Lo que has puesto como código es lo correcto.

Si en el proyecto tienes el servicio starter, quita ese código del servicio que lo tengas y pasalo a starter, ya que starter es el servicio de arranque.

Si aún asi no te funciona, tendrias que poner unos logs en Sub Service_Create , Sub Service_Start (StartingIntent As Intent) y Sub Service_Destroy , para comprobar si entra y algo lo para.

Tambien si tienes starter y no lo utilizas, quitalo del proyecto

Saludos
 

mvera

Active Member
Licensed User
Longtime User
gracias bgsoft

encontre esto traducido para el mismo caso.

RESUELTO


THANKSSSSSS para su atención. Estoy muy feliz. Encontré el verdadero problema ...

El problema ocurre porque he declarado algunas variables (de tipo: NotificationBuilder, list, HttpClient, HttpRequest) en "Process_Globals" de las varias actividades, pero tuve problemas para detectarlo porque el error no dice lo que estaba sucediendo, solo dice (... chrased). La solución fue: he hecho un módulo de clase y he declarado todas las variables allí. Ahora, mi servicio comienza cuando encender mi dispositivo perfectamente, pero, en este momento tengo que cambiar un montón de cosas en mi aplicación después de esto cambia.


En mi caso ocupo notification y okhttp y notificacion lo puse en process_globlas

B4X:
#Region  Service Attributes
    #StartAtBoot: true
    #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
    
  
    Dim ruta1 As String
    Dim cursor1 As Cursor
    Dim sql1 As SQL
    Dim reportes_envio,consulta_respuesta As HttpJob
    Dim ruta As String
    Dim n As Notification
  
  
End Sub

ahora el efecto que veo es que después de reiniciar el teléfono voy a administración->en uso , encuentro mi aplicacion corriendo , pero no muestra las notificaciones que es lo busco.

El objetivo es que mi aplicacion via okhttp , lea la bd de mi server , si encuentra lo que busca , lo nuestre por notificacion.

cuando arranco la aplicacion funciona perfecto , pero al reiniciarla no.

tambien cree el servicio starter, pero el resultado fue el mismo.

B4X:
#Region  Service Attributes
    #StartAtBoot: true
    #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub
Sub Service_Create
  
End Sub

Sub Service_Start (StartingIntent As Intent)
StartService(acciones)
End Sub

Sub Service_Destroy

End Sub
















 

bgsoft

Well-Known Member
Licensed User
Longtime User
gracias bgsoft

encontre esto traducido para el mismo caso.

RESUELTO


THANKSSSSSS para su atención. Estoy muy feliz. Encontré el verdadero problema ...

El problema ocurre porque he declarado algunas variables (de tipo: NotificationBuilder, list, HttpClient, HttpRequest) en "Process_Globals" de las varias actividades, pero tuve problemas para detectarlo porque el error no dice lo que estaba sucediendo, solo dice (... chrased). La solución fue: he hecho un módulo de clase y he declarado todas las variables allí. Ahora, mi servicio comienza cuando encender mi dispositivo perfectamente, pero, en este momento tengo que cambiar un montón de cosas en mi aplicación después de esto cambia.


En mi caso ocupo notification y okhttp y notificacion lo puse en process_globlas

B4X:
#Region  Service Attributes
    #StartAtBoot: true
    #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
   
 
    Dim ruta1 As String
    Dim cursor1 As Cursor
    Dim sql1 As SQL
    Dim reportes_envio,consulta_respuesta As HttpJob
    Dim ruta As String
    Dim n As Notification
 
 
End Sub

ahora el efecto que veo es que después de reiniciar el teléfono voy a administración->en uso , encuentro mi aplicacion corriendo , pero no muestra las notificaciones que es lo busco.

El objetivo es que mi aplicacion via okhttp , lea la bd de mi server , si encuentra lo que busca , lo nuestre por notificacion.

cuando arranco la aplicacion funciona perfecto , pero al reiniciarla no.

tambien cree el servicio starter, pero el resultado fue el mismo.

B4X:
#Region  Service Attributes
    #StartAtBoot: true
    #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub
Sub Service_Create
 
End Sub

Sub Service_Start (StartingIntent As Intent)
StartService(acciones)
End Sub

Sub Service_Destroy

End Sub

Hola mvera:

Me alegro que te empiece a funcionar.

cuando arranco la aplicacion funciona perfecto , pero al reiniciarla no.
Está claro que cuando arrancas la aplicación normal haces cosas que no son las mismas cuando el arranque es desde reinicio, dos cosas; mirate el ciclo de vida que hace el programa con el starter aqui:
https://www.b4x.com/android/forum/threads/informaciÓn-sobre-el-módulo-de-servicio-starter.66596/
y luego mira que haces cuando arrancas normal, y haz lo mismo cuando sea por reinicio, tendras que hacer lo mismo que cuando se arranca normal

Saludos
 

mvera

Active Member
Licensed User
Longtime User
muchas gracias , era lo que planteabas.
ahora para quien lo necesito yo ocupe ToastMessageShow("xxxx",True) asi fui depuranto cuando reiniciaba el telefono.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Me alegro que lo solucionaras, la solución del ToastMessageShow a veces la empleo, pero es cuando necesito ver algo muy concreto, prefiero utilizar Log que queda constancia, y ademas hago el LogColor y de esa forma puedo ver grupos de cosas similares de un golpe de vista. Eso si, si utilizas Log, cuando acabes de probar, o los comentas o creas una variable global para que no actuen por que relentizan mucho el proceso.

Aqui puse un ciclo de vida con starter por si quieres ver que formularios y módulos van entrando al arrancar, va bien para saber donde tienes que poner llamadas que las necesitas al arrancar:
https://www.b4x.com/android/forum/t...-el-módulo-de-servicio-starter.66596/#content

Saludos
 
Top