IsolatedWorker
public
interface
IsolatedWorker
android.adservices.ondevicepersonalization.IsolatedWorker |
如要處理 OS 對 IsolatedService
的要求,就需要實作這個介面提供的方法。IsolatedService
會在每個要求上建立 IsolatedWorker
的例項,並根據要求類型呼叫下列其中一個方法。IsolatedService
會在 Binder 執行緒上呼叫方法,而 IsolatedWorker
應將長期執行作業卸載至背景工作執行緒。每個方法的消費者參數會用來傳回結果。
摘要
公用方法 | |
---|---|
default
void
|
onDownloadCompleted(DownloadCompletedInput input, Consumer<DownloadCompletedOutput> consumer)
處理已完成的下載作業。 |
default
void
|
onEvent(EventInput input, Consumer<EventOutput> consumer)
處理由對平台提供的追蹤網址 |
default
void
|
onExecute(ExecuteInput input, Consumer<ExecuteOutput> consumer)
處理來自應用程式的要求。 |
default
void
|
onRender(RenderInput input, Consumer<RenderOutput> consumer)
針對 |
default
void
|
onTrainingExample(TrainingExampleInput input, Consumer<TrainingExampleOutput> consumer)
產生用於聯合運算工作的單一訓練範例。 |
公用方法
onDownloadCompleted
public void onDownloadCompleted (DownloadCompletedInput input, Consumer<DownloadCompletedOutput> consumer)
處理已完成的下載作業。平台會使用 IsolatedService
套件資訊清單中定義的參數下載內容,在下載完成後呼叫此函式,並使用此方法的結果更新 IsolatedService#getRemoteData(RequestToken)
中的 REMOTE_DATA 資料表。
參數 | |
---|---|
input |
DownloadCompletedInput :下載處理常式參數。此值不能為 null 。 |
consumer |
Consumer :接收結果的回呼。應在發生錯誤時搭配 null 呼叫。如果使用 null 呼叫,REMOTE_DATA 資料表不會有任何更新。如果這個方法擲回 |
onEvent
public void onEvent (EventInput input, Consumer<EventOutput> consumer)
處理由平台提供的追蹤網址 EventUrlProvider
要求觸發的事件,這類網址嵌入 onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer)
傳回的 HTML 輸出內容。平台會使用 EventOutput#getEventLogRecord()
更新 EVENTS 資料表。
參數 | |
---|---|
input |
EventInput :計算事件資料所需的參數。此值不能為 null 。 |
consumer |
Consumer :接收結果的回呼。應在發生錯誤時搭配 null 呼叫。如果使用 null 呼叫,系統不會將任何資料寫入 EVENTS 資料表。如果這個方法擲回 |
onExecute
public void onExecute (ExecuteInput input, Consumer<ExecuteOutput> consumer)
處理來自應用程式的要求。當應用程式呼叫參照已命名 IsolatedService
的 OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle,
java.util.concurrent.Executor, OutcomeReceiver)
時,系統會呼叫此方法。
參數 | |
---|---|
input |
ExecuteInput :從呼叫應用程式要求參數。此值不能為 null 。 |
consumer |
Consumer :接收結果 ExecuteOutput 的回呼。發生錯誤時,應使用 null 呼叫此方法。系統會將錯誤傳遞至呼叫應用程式,並以 OnDevicePersonalizationException 和錯誤代碼 OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED 傳遞。為避免將私人資料洩漏給呼叫應用程式,系統不會提供更詳細的錯誤回報。如果 IsolatedService 需要向後端回報錯誤統計資料,應將記錄的錯誤資料填入 ExecuteOutput ,並仰賴聯合 Analytics 匯總錯誤報表。如果這個方法擲回 |
onRender
public void onRender (RenderInput input, Consumer<RenderOutput> consumer)
針對 onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer)
傳回的結果產生 HTML。當用戶端應用程式呼叫 OnDevicePersonalizationManager#requestSurfacePackage(SurfacePackageToken, IBinder, int, int, int, java.util.concurrent.Executor, OutcomeReceiver)
時呼叫。平台會在受限框架內的 WebView
中轉譯此 HTML。
參數 | |
---|---|
input |
RenderInput :轉譯要求的參數。此值不能為 null 。 |
consumer |
Consumer :接收結果的回呼。發生錯誤時應使用 null 呼叫。系統會將錯誤傳遞至呼叫應用程式,並以 OnDevicePersonalizationException 和錯誤代碼 OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED 傳遞。如果這個方法擲回 |
onTrainingExample
public void onTrainingExample (TrainingExampleInput input, Consumer<TrainingExampleOutput> consumer)
產生用於聯合運算工作的單一訓練範例。
參數 | |
---|---|
input |
TrainingExampleInput :產生訓練範例所需的參數。此值不能為 null 。 |
consumer |
Consumer :完成時叫用的回呼。此值不能為 null 。 |