IsolatedWorker

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Interface com métodos que precisam ser implementados para processar solicitações do SO a uma IsolatedService. O IsolatedService cria uma instância de IsolatedWorker em cada solicitação e chama um dos métodos abaixo, dependendo do tipo da solicitação. O IsolatedService chama o método em uma linha de execução de vinculação, e o IsolatedWorker precisa descarregar operações de longa duração em uma linha de execução de worker. O parâmetro do consumidor de cada método é usado para retornar os resultados.

Resumo

Métodos públicos

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

Processa um download concluído.

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

Processa um evento acionado por uma solicitação para um URL de rastreamento EventUrlProvider fornecido pela plataforma que foi incorporado à saída HTML retornada por onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer).

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

Processa uma solicitação de um aplicativo.

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

Gera HTML para os resultados retornados como resultado de onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer).

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

Gerar um único exemplo de treinamento usado para o job de computação federado.

Métodos públicos

onDownloadDone

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

Processa um download concluído. A plataforma faz o download do conteúdo usando os parâmetros definidos no manifesto do pacote de IsolatedService, chama essa função após a conclusão do download e atualiza a tabela REMOTE_DATA de IsolatedService#getRemoteData(RequestToken) com o resultado desse método.

Parâmetros
input DownloadCompletedInput: faz o download dos parâmetros do gerenciador. Esse valor não pode ser null.

consumer Consumer: callback que recebe o resultado. Precisa ser chamado com null em um erro. Se chamado com null, nenhuma atualização é feita na tabela REMOTE_DATA.

Se esse método gerar uma RuntimeException, nenhuma atualização será feita na tabela REMOTE_DATA.

onEvent

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

Processa um evento acionado por uma solicitação para um URL de rastreamento EventUrlProvider fornecido pela plataforma que foi incorporado à saída HTML retornada por onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer). A plataforma atualiza a tabela EVENTS com EventOutput#getEventLogRecord().

Parâmetros
input EventInput: os parâmetros necessários para calcular os dados do evento. Esse valor não pode ser null.

consumer Consumer: callback que recebe o resultado. Precisa ser chamado com null em um erro. Se chamado com null, nenhum dado será gravado na tabela EVENTS.

Se esse método gerar uma RuntimeException, nenhum dado será gravado na tabela EVENTS.

onExecute

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

Gerencia uma solicitação de um app. Esse método é chamado quando um app chama OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver), que se refere a um IsolatedService.

Parâmetros
input ExecuteInput: parâmetros de solicitação do app de chamada. Esse valor não pode ser null.

consumer Consumer: callback que recebe o resultado ExecuteOutput. Precisa ser chamado com null em um erro. O erro é propagado para o app de chamada como uma OnDevicePersonalizationException com o código de erro OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED. Para evitar o vazamento de dados particulares para o app de chamada, relatórios de erros mais detalhados não estão disponíveis. Se o IsolatedService precisar informar estatísticas de erro ao back-end, ele preencherá ExecuteOutput com dados de erro para geração de registros e usará o Federated Analytics para agregar os relatórios de erros.

Se esse método gerar um RuntimeException, ele também será informado para chamar apps como um OnDevicePersonalizationException com o código de erro OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onRender

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

Gera HTML para os resultados retornados como resultado de onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer). Chamado quando um app cliente chama OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver). A plataforma renderizará esse HTML em um WebView dentro de um frame isolado.

Parâmetros
input RenderInput: parâmetros para a solicitação de renderização. Esse valor não pode ser null.

consumer Consumer: callback que recebe o resultado. Precisa ser chamado com null em um erro. O erro é propagado para o app de chamada como uma OnDevicePersonalizationException com o código de erro OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

Se esse método gerar um RuntimeException, ele também vai ser informado para chamar apps como um OnDevicePersonalizationException com o código de erro OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onTrainingExample

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

Gerar um único exemplo de treinamento usado para o job de computação federado.

Parâmetros
input TrainingExampleInput: os parâmetros necessários para gerar o exemplo de treinamento. Esse valor não pode ser null.

consumer Consumer: callback a ser invocado na conclusão. Esse valor não pode ser null.