IsolatedWorker

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Interfaz con métodos que se deben implementar para controlar las solicitudes del SO a un IsolatedService. IsolatedService crea una instancia de IsolatedWorker en cada solicitud y llama a uno de los métodos que se indican a continuación, según el tipo de solicitud. IsolatedService llama al método en un subproceso de Binder y IsolatedWorker debe descargar las operaciones de larga duración en un subproceso de trabajo. El parámetro de consumidor de cada método se usa para mostrar resultados.

Resumen

Métodos públicos

default void onDownloadCompleted(DownloadCompletedInput input, Consumer<DownloadCompletedOutput> consumer)

Controla una descarga completada.

default void onEvent(EventInput input, Consumer<EventOutput> consumer)

Controla un evento activado por una solicitud a una URL de seguimiento EventUrlProvider proporcionada por la plataforma que se incorpora en el resultado HTML que muestra onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer).

default void onExecute(ExecuteInput input, Consumer<ExecuteOutput> consumer)

Controla una solicitud de una aplicación.

default void onRender(RenderInput input, Consumer<RenderOutput> consumer)

Genera HTML para los resultados que se mostraron como resultado de onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer).

default void onTrainingExample(TrainingExampleInput input, Consumer<TrainingExampleOutput> consumer)

Generar un solo ejemplo de entrenamiento que se use para un trabajo de procesamiento federado

Métodos públicos

onDownloadCompleted

public void onDownloadCompleted (DownloadCompletedInput input, 
                Consumer<DownloadCompletedOutput> consumer)

Controla una descarga completada. La plataforma descarga contenido con los parámetros definidos en el manifiesto del paquete de IsolatedService, llama a esta función después de que se completa la descarga y actualiza la tabla REMOTE_DATA de IsolatedService#getRemoteData(RequestToken) con el resultado de este método.

Parámetros
input DownloadCompletedInput: Descarga los parámetros del controlador. Este valor no puede ser null.

consumer Consumer: Es la devolución de llamada que recibe el resultado. Se debe llamar con null en un error. Si se llama con null, no se actualizan actualizaciones a la tabla REMOTE_DATA.

Si este método arroja una RuntimeException, no se realizan actualizaciones en la tabla REMOTE_DATA.

onEvent

public void onEvent (EventInput input, 
                Consumer<EventOutput> consumer)

Controla un evento activado por una solicitud a una URL de seguimiento EventUrlProvider proporcionada por la plataforma que se incorpora en el resultado HTML que muestra onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer). La plataforma actualiza la tabla EVENTS con EventOutput#getEventLogRecord().

Parámetros
input EventInput: Son los parámetros necesarios para calcular los datos de eventos. Este valor no puede ser null.

consumer Consumer: Es la devolución de llamada que recibe el resultado. Se debe llamar con null en un error. Si se llama con null, no se escriben datos en la tabla EVENTS.

Si este método arroja una RuntimeException, no se escriben datos en la tabla EVENTS.

en ejecución

public void onExecute (ExecuteInput input, 
                Consumer<ExecuteOutput> consumer)

Controla una solicitud de una app. Se llama a este método cuando una app llama a OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) que hace referencia a un IsolatedService con nombre.

Parámetros
input ExecuteInput: Son los parámetros de la solicitud de la app que realiza la llamada. Este valor no puede ser null.

consumer Consumer: Es la devolución de llamada que recibe el resultado ExecuteOutput. Se debe llamar con null en un error. El error se propaga a la app que realiza la llamada como una OnDevicePersonalizationException con el código de error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED. Para evitar que se filtren datos privados en la app que realiza la llamada, no hay informes de errores más detallados disponibles. Si IsolatedService necesita informar estadísticas de errores a su backend, debe propagar ExecuteOutput con datos de errores para el registro y confiar en Federated Analytics para agregar los informes de errores.

Si este método genera una RuntimeException, también se informa para que se llame a las apps como una OnDevicePersonalizationException con el código de error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onRender

public void onRender (RenderInput input, 
                Consumer<RenderOutput> consumer)

Genera HTML para los resultados que se mostraron como resultado de onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer). Se llama cuando una app cliente llama a OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver). La plataforma renderizará este HTML en una WebView dentro de un marco vallado.

Parámetros
input RenderInput: Son los parámetros para la solicitud de renderización. Este valor no puede ser null.

consumer Consumer: Es la devolución de llamada que recibe el resultado. Se debe llamar con null en un error. El error se propaga a la app que realiza la llamada como una OnDevicePersonalizationException con el código de error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

Si este método genera una RuntimeException, también se informa para que se llame a las apps como una OnDevicePersonalizationException con el código de error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

EjemploDeEntrenamiento

public void onTrainingExample (TrainingExampleInput input, 
                Consumer<TrainingExampleOutput> consumer)

Generar un solo ejemplo de entrenamiento que se use para un trabajo de procesamiento federado

Parámetros
input TrainingExampleInput: Son los parámetros necesarios para generar el ejemplo de entrenamiento. Este valor no puede ser null.

consumer Consumer: Es la devolución de llamada que se invocará al finalizar. Este valor no puede ser null.