Estoy escribiendo una aplicación de cliente de Android que sigue recibiendo notificaciones push de un servidor utilizando HTTP larga-polling (Comet).¿Qué eventos pueden activar un dispositivo Android para dormir?
No quiero mantener siempre WakeLock porque va a agotar la batería, pero necesito asegurarme de que el dispositivo pueda recibir notificaciones incluso cuando está en modo de suspensión.
Y me encontré con esta pregunta:
Android: Sleep stages/levels on an Android device?
donde "CommonsWare" mencionó que un paquete entrante en un socket no Wifi despertará el dispositivo.
Así que mi solución es similar a esto:
Client ------------------------- Server
---- Request----->
release WakeLock (Allow device to sleep)
<----Notification-- (Hopes it can wake up the device)
require WakeLock
process the notification
---- Request----->
release WakeLock
....
pero hay una pequeña ventana de tiempo entre la recepción de la notificación y que requiere la wakelock, por lo que mi pregunta es, ¿cuánto tiempo el dispositivo a mantener este estado despierto? ¿Es posible que el dispositivo vuelva a dormir durante esta ventana de tiempo?