![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Problema servicio y wakelock wifi lock
Buenos días tengo un pequeño problema y no se exactamente que hago mal.
Tengo un servicio en segundo plano donde hago uso de la api de play services para Location, con los datos parametrizados en Location me obtiene los datos de mi localización cada 15 min y los envió a un servidor a traves de un webservice con retrofit. Para evitar que la CPU se duerma y el Wifi he creado un PowerManager y un WifiManager wakelock y wifilock los cuales activo al iniciar el servicio y desactivo cuando el servicio muere por cualquier evento automáticamente. Si el servicio muere lo reinicio con un broadcast reciver. Todo funciona genial, el servicio muere y se reinicia, cada 15 envia los datos al servidor, traceo los wakelock y me dicen que están activos, pero todas las noches al acostarme y dejar el móvil en reposo todo se apaga ![]() ![]() ![]() Debo poner tambien wakelock en el broadcast reciver? debo hacer las llamadas al servidor fuera del servicio? necesito un poco de ayuda ![]() |
|
#2
|
||||
|
||||
Desde Android 6 no basta el WakeLock para que el dispositivo no entre en reposo, si se activa el Doze tu aplicación dejará de funcionar igualmente.
Tienes que añadir tu aplicación a la lista de aplicaciones que no usan optimización de batería para usar un WakeLock correctamente. De todas formas para tu caso lo mejor es establecer una alarma cada 15 minutos, en lugar de estar continuamente con la CPU en marcha, la diferencia de gasto es considerable. |
#3
|
||||
|
||||
Lo acabo de cambiar y la verdad que tienes razón, he creado una alarma para q se ejecute cada 15 min sin afectar al Doze y me ejecute el pending intent que ejecuta un servicio solo una vez y asi no esta a la escucha constantemente
muchisimas gracias Última edición por Dild0 Día 21/10/17 a las 18:54:11 |
#4
|
||||
|
||||
@kriogeN
Una pregunta, ¿que es mejor? ¿crearse un servicio start_no_stiky que solo se ejecute una vez y destruirlo o simplemente dejarlo creado y luego iniciarlo cada vez que lo quiera usar? |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
Gracias, seguí investigando y la gente opina tambien q la segunda, ya que el servucio se queda cacheado sin consumir nada y solo hay q iniciarlo
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 14:26:35 (GMT +2)
HTCMania: líderes desde el 2007