code: @Override
  	public <D, P> Promise<D, Throwable, P> when(DeferredFutureTask<D, P> task) {
  		return new AndroidDeferredObject<D, Throwable, P>(super.when(task)).promise();
  	}
docs: Wrap with {@link AndroidDeferredObject} so that callbacks can be executed in UI thread.