IsolatedWorker

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Interface com métodos que precisam ser implementados para lidar com solicitações do SO para um 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 transferir operações de longa duração para uma linha de execução de worker. O parâmetro de consumidor de cada método é usado para retornar 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 fornecido pela plataforma EventUrlProvider que foi incorporado na 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 app.

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

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

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

Gera um único exemplo de treinamento usado para o job de computação federada.

Métodos públicos

onDownloadCompleted

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 do IsolatedService, chama essa função após o download ser concluído e atualiza a tabela REMOTE_DATA do IsolatedService#getRemoteData(RequestToken) com o resultado desse método.

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

consumer Consumer: callback que recebe o resultado. Precisa ser chamado com null em um erro. Se for chamada com null, nenhuma atualização será 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 acompanhamento fornecido pela plataforma EventUrlProvider 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 for 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)

Processa 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 nomeado.

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

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

Se esse método gerar um RuntimeException, ele também será informado para os apps de chamada 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 fechado.

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 OnDevicePersonalizationException com o código de erro OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

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.

onTrainingExample

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

Gera um único exemplo de treinamento usado para o job de computação federada.

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 após a conclusão. Esse valor não pode ser null.