al realizar una operación. • DeferredObject : class • Objeto con el que controlas el estado de la promesa • AndroidDeferredObject • DeferredManager : interface • Gestor de promesas • DefaultDeferredManager implementación por defecto • AndroidDefererdManager
Background? • UI • Cosas en el hilo de UI que no queremos • Background • Cuando queremos hacer algo en UI tenemos que recurrir a Handlers • Problema subyacente • Responsabilidad recae en la API: Bad idea • Es el cliente de la API quien debe decidir esto Listeners en Android
Android • Nuevos callbacks • AndroidDoneCallback • AndroidFailCallback • AndroidProgressCallback • AndroidAlwaysCallback • Método para elegir en que hilo se va a ejecutar • A partir de 1.2.5, se puede indicar con una anotación jDeferred en Android
el método public abstract class UIDoneCallback implements AndroidDoneCallback { public AndroidExecutionScope getExecutionScope() { return AndroidExecutionScope.UI; } } public abstract class BackgroundDoneCallback implements AndroidDoneCallback { public AndroidExecutionScope getExecutionScope() { return AndroidExecutionScope.BACKGROUND; } }
hay un consumo mínimo • Usar todos de forma eficiente permite apagar la CPU antes • Un ThreadPool no es suficiente • Nos ayuda a lanzar trabajos en paralelo • ¿Cómo sincronizar trabajos dependientes entre si? • Herramientas de bajo nivel… complicadas de depurar. Paralelizar trabajo
se puede reutilizar • Solo se puede llamar 1 vez a resolve() o reject() • A notify() si podemos llamar muchas veces • Para progreso, no para notificar cambios • Ni mejor ni peor, depende de nuestros requisitos.