IsolatedWorker

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Interfaz con métodos que deben implementarse para controlar solicitudes del SO a un IsolatedService. IsolatedService crea una instancia de IsolatedWorker en cada solicitud y llama a uno de los siguientes métodos, según el tipo de solicitud. IsolatedService llama al método en un subproceso de Binder, y IsolatedWorker debe transferir las operaciones de larga duración a un subproceso de trabajo. El parámetro del 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 proporcionada por la plataforma EventUrlProvider que se incorporó en el resultado HTML que devuelve onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer).

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

Controla una solicitud de una app.

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)

Genera un solo ejemplo de entrenamiento que se usa para el 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 mediante los parámetros definidos en el manifiesto del paquete de IsolatedService, llama a esta función una vez que se completa la descarga y actualiza la tabla REMOTE_DATA desde 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: Devolución de llamada que recibe el resultado. Se debe llamar con null en un error. Si se lo llama con null, no se realizan actualizaciones en la tabla REMOTE_DATA.

Si este método arroja un 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 proporcionada por la plataforma EventUrlProvider que se incorporó en el resultado HTML que devuelve 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 del evento. Este valor no puede ser null.

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

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

OnEjecutar

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 denominado.

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

consumer Consumer: 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 la filtración de datos privados a la app que realiza la llamada, no están disponibles los informes de errores más detallados. Si IsolatedService necesita informar estadísticas de errores a su backend, debe propagar ExecuteOutput con datos de errores para el registro y depender del análisis federado para agregar los informes de errores.

Si este método arroja un RuntimeException, también se informa a las apps que llaman como un 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 un WebView dentro de un marco con protección.

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

consumer Consumer: 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 arroja una RuntimeException, esto también se informa a las apps de llamada como una OnDevicePersonalizationException con el código de error OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onTrainingExample

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

Genera un solo ejemplo de entrenamiento que se usa para el 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á cuando se complete la tarea. Este valor no puede ser null.