Worker Isolated

public interface IsolatedWorker

android.adservices.ondevicepersonalization.IsolatedWorker


Interfaccia con i metodi che devono essere implementati per gestire le richieste dal sistema operativo a un IsolatedService. IsolatedService crea un'istanza di IsolatedWorker su ogni richiesta e chiama uno dei metodi seguenti, a seconda del tipo di richiesta. IsolatedService chiama il metodo su un thread di Binder e IsolatedWorker deve trasferire le operazioni a lunga esecuzione a un thread di lavoro. Il parametro consumer di ogni metodo viene utilizzato per restituire risultati.

Riepilogo

Metodi pubblici

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

Gestisce un download completato.

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

Gestisce un evento attivato da una richiesta all'URL di monitoraggio EventUrlProvider fornito dalla piattaforma, incorporato nell'output HTML restituito da onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer).

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

Gestisce una richiesta di un'app.

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

Genera HTML per i risultati restituiti come risultato di onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer).

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

Genera un singolo esempio di addestramento utilizzato per il job di calcolo federato.

Metodi pubblici

onDownloadCompletato

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

Gestisce un download completato. La piattaforma scarica i contenuti utilizzando i parametri definiti nel manifest del pacchetto di IsolatedService, chiama questa funzione al termine del download e aggiorna la tabella REMOTE_DATA da IsolatedService#getRemoteData(RequestToken) con il risultato di questo metodo.

Parametri
input DownloadCompletedInput: parametri del gestore dei download. Questo valore non può essere null.

consumer Consumer: callback che riceve il risultato. Deve essere chiamata con null in caso di errore. Se chiamato con null, non vengono apportati aggiornamenti alla tabella REMOTE_DATA.

Se questo metodo genera un valore RuntimeException, non vengono effettuati aggiornamenti alla tabella REMOTE_DATA.

onEvent

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

Gestisce un evento attivato da una richiesta all'URL di monitoraggio EventUrlProvider fornito dalla piattaforma, incorporato nell'output HTML restituito da onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer). La piattaforma aggiorna la tabella EVENTS con EventOutput#getEventLogRecord().

Parametri
input EventInput: i parametri necessari per calcolare i dati degli eventi. Questo valore non può essere null.

consumer Consumer: callback che riceve il risultato. Deve essere chiamata con null in caso di errore. Se chiamato con null, non vengono scritti dati nella tabella EVENTS.

Se questo metodo genera un valore RuntimeException, non vengono scritti dati nella tabella EVENTS.

Esegui

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

Gestisce una richiesta da un'app. Questo metodo viene chiamato quando un'app chiama OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) per fare riferimento a un IsolatedService denominato.

Parametri
input ExecuteInput: parametri di richiesta dall'app per la chiamata. Questo valore non può essere null.

consumer Consumer: callback che riceve il risultato ExecuteOutput. Deve essere chiamata con null in caso di errore. L'errore viene propagato all'app chiamante come OnDevicePersonalizationException con codice di errore OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED. Per evitare di fughe di dati privati all'app per chiamate, non sono disponibili report più dettagliati sugli errori. Se IsolatedService deve segnalare statistiche sugli errori al proprio backend, deve completare ExecuteOutput con i dati di errore per il logging e utilizzare Federated Analytics per aggregare i report sugli errori.

Se questo metodo genera un valore RuntimeException, viene segnalato anche alle chiamate alle app come OnDevicePersonalizationException con codice di errore OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

onRender

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

Genera HTML per i risultati restituiti come risultato di onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer). Richiamato quando un'app client chiama OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver). La piattaforma eseguirà il rendering di questo codice HTML in un WebView all'interno di un frame isolato.

Parametri
input RenderInput: parametri per la richiesta di rendering. Questo valore non può essere null.

consumer Consumer: callback che riceve il risultato. Deve essere chiamata con null in caso di errore. L'errore viene propagato all'app chiamante come OnDevicePersonalizationException con il codice di errore OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

Se questo metodo genera un valore RuntimeException, viene segnalato anche alle chiamate delle app come OnDevicePersonalizationException con codice di errore OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED.

Esempio sull'addestramento

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

Genera un singolo esempio di addestramento utilizzato per il job di calcolo federato.

Parametri
input TrainingExampleInput: i parametri necessari per generare l'esempio di addestramento. Questo valore non può essere null.

consumer Consumer: callback da richiamare al completamento. Questo valore non può essere null.