ИзолированныйРаботник

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Интерфейс с методами, которые необходимо реализовать для обработки запросов ОС к IsolatedService . IsolatedService создает экземпляр IsolatedWorker для каждого запроса и вызывает один из приведенных ниже методов, в зависимости от типа запроса. IsolatedService вызывает этот метод в потоке Binder, а IsolatedWorker должен переложить длительные операции в рабочий поток. Параметр Consumer каждого метода используется для возврата результатов.

Краткое содержание

Публичные методы

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

Обрабатывает завершенную загрузку.

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

Обрабатывает событие, инициируемое запросом к предоставленному платформой URL-адресу отслеживания EventUrlProvider , который был встроен в выходные данные HTML, возвращаемые onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer) .

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

Обрабатывает запрос от приложения.

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

Создает HTML для результатов, возвращенных в результате onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer) .

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

Создайте один обучающий пример, используемый для задания объединенных вычислений.

Публичные методы

onDownloadCompleted

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

Обрабатывает завершенную загрузку. Платформа загружает контент, используя параметры, определенные в манифесте пакета IsolatedService , вызывает эту функцию после завершения загрузки и обновляет таблицу REMOTE_DATA из IsolatedService#getRemoteData(RequestToken) с помощью результата этого метода.

Параметры
input DownloadCompletedInput : параметры обработчика загрузки. Это значение не может быть null .

consumer Consumer : обратный вызов, который получает результат. Должен вызываться с null в случае ошибки. Если вызывается с null , в таблицу REMOTE_DATA не вносятся никакие обновления.

Если этот метод выдает RuntimeException , в таблицу REMOTE_DATA не вносятся никакие обновления.

onEvent

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

Обрабатывает событие, инициируемое запросом к предоставленному платформой URL-адресу отслеживания EventUrlProvider , который был встроен в выходные данные HTML, возвращаемые onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer) . Платформа обновляет таблицу EVENTS с помощью EventOutput#getEventLogRecord() .

Параметры
input EventInput : параметры, необходимые для вычисления данных события. Это значение не может быть null .

consumer Consumer : обратный вызов, который получает результат. Должен вызываться с null в случае ошибки. При вызове с null данные в таблицу EVENTS не записываются.

Если этот метод выдает исключение RuntimeException , данные в таблицу EVENTS не записываются.

onExecute

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

Обрабатывает запрос от приложения. Этот метод вызывается, когда приложение вызывает OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) который ссылается на именованный IsolatedService .

Параметры
input ExecuteInput : параметры запроса из вызывающего приложения. Это значение не может быть null .

consumer Consumer : обратный вызов, который получает результат ExecuteOutput . Должен вызываться с null в случае ошибки. Ошибка передается вызывающему приложению как OnDevicePersonalizationException с кодом ошибки OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED . Чтобы избежать утечки личных данных в вызывающее приложение, более подробные отчеты об ошибках недоступны. Если IsolatedService необходимо сообщить статистику ошибок на свою серверную часть, она должна заполнить ExecuteOutput данными об ошибках для регистрации и полагаться на Federated Analytics для агрегирования отчетов об ошибках.

Если этот метод выдает RuntimeException , об этом также сообщается вызывающим приложениям как OnDevicePersonalizationException с кодом ошибки OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED .

onRender

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

Создает HTML для результатов, возвращенных в результате onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer) . Вызывается, когда клиентское приложение вызывает OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver) . Платформа отобразит этот HTML-код в WebView внутри огороженного фрейма.

Параметры
input RenderInput : Параметры для запроса рендеринга. Это значение не может быть null .

consumer Consumer : обратный вызов, который получает результат. Должен вызываться с null в случае ошибки. Ошибка передается вызывающему приложению как OnDevicePersonalizationException с кодом ошибки OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED .

Если этот метод генерирует исключение RuntimeException , об этом также сообщается вызывающим приложениям как OnDevicePersonalizationException с кодом ошибки OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED .

onTrainingПример

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

Создайте один обучающий пример, используемый для задания объединенных вычислений.

Параметры
input TrainingExampleInput : параметры, необходимые для создания обучающего примера. Это значение не может быть null .

consumer Consumer : обратный вызов, который будет вызван по завершении. Это значение не может быть null .