Durante el pasado Google I/O 2014 se presentó Android L, la nueva versión de Android que llegará a final de año para el público, ya disponible en Preview. En esta versión, nos han presentado los nuevos patrones de diseño que predominarán en él y que han denominado Material Design.

Pero no todo lo que hay detrás de Android L es diseño. Trae consigo grandes mejoras, y una de ellas tiene que ver con la eficiencia energética a través del proyecto Volta persiguiento la optimización de la batería.

volta

Esto no quiere decir que no podamos acudir a más recursos. Y es que realmente los desarrolladores de terceros deberían pensar en formas de mejorar sus apps.

Antecedentes

Hasta ahora, si un desarrollador quería ejecutar una tarea en segundo plano (por ejemplo, para solicitar datos a un servidor o simplemente ejecutar un trabajo intensivo para el procesador), la aplicación tenía que escuchar ciertos eventos o programar alarmas periódicas para hacer comprobaciones. Además, la app debía estar determinando si las condiciones (por ejemplo, acceso a Internet) eran ideales o debía posponer algún trabajo.

Todo esto nos podía inducir, como programadores, a errores. Pero es que además ¡había momentos en los que una app se ejecutaba sólo para volver a esperar!

sleep

 

De hecho, a muchos de vosotros ya os sonará la clase AsyncTask, una clase que nos servía para realizar estas tareas en segundo plano. Luego teníamos los mensajes Broadcast, para notificar acciones. Todo esto, con la ayuda del AlarmManager nos permitía montar la estructura de la que hablábamos. Así, podíamos llegar a un ejemplo de código como el siguiente:

asynctask

broadcast

Pero la cosa no acababa ahí, pues podíamos usar otras alternativas, como la del uso de Services y ContentProvider. Con estas clases y el uso de un SyncAdapter, podremos crear otra forma de descargar información en segundo plano. Pero esto sigue sin solucionar nuestro problema.

JobScheduler, la alternativa

Con esta tesitura nace JobScheduler. Su misión es actuar como un despachador de aplicaciones, responsable de lanzar aquellas que estén en las condiciones adecuadas, por lo que ya no será necesario vigilar de una forma manual si estamos o no en las condiciones necesarias.

Para ello, los desarrolladores simplemente deben registrar una solicitud con un conjunto de criterios, para los cuales el programador de tareas despertará la aplicación cuando esté listo y los cumplan. No sólo nos servirá para lanzar apps cuando estemos dentro del alcance WiFi o conectados al cargador, sino incluso para despertar apps con cierta frecuencia.

Sin duda, es un gran avance y una gran mejora para el desarrollador. Para ello, os recomendamos empezar por la presentación que hicieron durante el Google I/O:

Una vez presentado, lo mejor es ver cómo funciona el JobScheduler, para lo que sin duda os recomendamos echar un vistazo a otro de los vídeos de Google Developers en Youtube:

Podríamos utilizar un ejemplo con JobScheduler, de tal forma que permitamos la ejecución de un trabajo en segundo plano a través de un Servicio, con varios parámetros que indiquen cuándo la ejecución debe tener lugar:

job1 job2 job3

A partir de ahí, podríamos lanzar el trabajo en segundo plano tanto una vez como de forma periódica, de forma sencilla:

job4

Conclusiones

JobScheduler nos permite configurar esquemas para ejecutar trabajos en segundo plano de una forma mucho más simple, basaco en los servicios. Además, nos ayudará a evitar errores como programadores y ahorrar batería. Pero uno de los detalles para que los programadores lo usen radicará en si estará disponible en alguna librería support o sólo podremos utilizarlo en versiones Android L o posteriores.

Más información Android Oficial | Speaker Deck | AndroidPolice

Mostrar comentarios
Vídeos El Androide Libre
Análisis Zepp E
Experiencia gaming al máximo
Análisis Nest Audio
Probamos Genshin Impact en Android
Análisis Samsung Galaxy Z Fold 2
Exprimiendo la cámara de vídeo del OPPO Find X2 Pro
Análisis Motorola Moto G9 Plus
Análisis Ecovacs Deebot N3 Max
Análisis Poco X3 NFC
Opinión OPPO Watch
Probamos el Samsung Galaxy Z Fold 2 5G, el mejor plegable del mundo
Análisis Nubia Red Magic 5S
10 trucos y consejos para las notas de voz de WhatsApp
Análisis OnePlus Nord
Análisis ASUS ROG Phone 3

Lo más visto

Samsung anuncia las fechas oficiales de salida del Note 4 en una infografía
Así es un terminal Android One; experiencia Nexus a bajo coste