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)

onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer) によって返された HTML 出力に埋め込まれた、プラットフォーム提供のトラッキング URL EventUrlProvider へのリクエストによってトリガーされたイベントを処理します。

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

アプリからのリクエストを処理します。

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

onExecute(android.adservices.ondevicepersonalization.ExecuteInput, java.util.function.Consumer) の結果として返された結果の HTML を生成します。

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

連携コンピューティング ジョブに使用されるトレーニング サンプルを 1 つ生成する。

パブリック メソッド

onDownloadCompleted

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

完了したダウンロードを処理します。プラットフォームは、IsolatedService のパッケージ マニフェストで定義されたパラメータを使用してコンテンツをダウンロードし、ダウンロードが完了した後にこの関数を呼び出して、このメソッドの結果で IsolatedService#getRemoteData(RequestToken) の REMOTE_DATA テーブルを更新します。

パラメータ
input DownloadCompletedInput: ダウンロード ハンドラのパラメータ。この値が null になることはありません。

consumer Consumer: 結果を受け取るコールバック。エラーが発生した場合は null で呼び出す必要があります。null で呼び出された場合、REMOTE_DATA テーブルは更新されません。

このメソッドが RuntimeException をスローした場合、REMOTE_DATA テーブルは更新されません。

onEvent

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

onRender(android.adservices.ondevicepersonalization.RenderInput, java.util.function.Consumer) によって返された HTML 出力に埋め込まれた、プラットフォーム提供のトラッキング URL EventUrlProvider へのリクエストによってトリガーされたイベントを処理します。プラットフォームは、EventOutput#getEventLogRecord() を使用して EVENTS テーブルを更新します。

パラメータ
input EventInput: イベントデータの計算に必要なパラメータ。この値が null になることはありません。

consumer Consumer: 結果を受け取るコールバック。エラーが発生した場合は null で呼び出す必要があります。null で呼び出されると、EVENTS テーブルにデータは書き込まれません。

このメソッドが RuntimeException をスローした場合、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.ERROR_ISOLATED_SERVICE_FAILEDOnDevicePersonalizationException として呼び出し元のアプリに伝播されます。プライベート データが呼び出し元アプリに漏洩しないように、より詳細なエラーレポートは利用できません。IsolatedService がエラー統計情報をバックエンドに報告する必要がある場合は、ログにエラーデータを格納するために ExecuteOutput にエラーデータを入力し、連携分析を使用してエラーレポートを集約する必要があります。

このメソッドが RuntimeException をスローすると、エラーコード OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILEDOnDevicePersonalizationException として呼び出し元のアプリにも報告されます。

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) を呼び出すと呼び出されます。プラットフォームは、この HTML をフェンスされたフレーム内の WebView でレンダリングします。

パラメータ
input RenderInput: レンダリング リクエストのパラメータ。この値が null になることはありません。

consumer Consumer: 結果を受け取るコールバック。エラー発生時に null を指定して呼び出す必要があります。このエラーは、エラーコード OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILEDOnDevicePersonalizationException として呼び出し元のアプリに伝播されます。

このメソッドが RuntimeException をスローした場合、エラーコード OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILEDOnDevicePersonalizationException として呼び出し元のアプリにも報告されます。

onTrainingExample

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

連携コンピューティング ジョブに使用されるトレーニング サンプルを 1 つ生成する。

パラメータ
input TrainingExampleInput: トレーニング サンプルの生成に必要なパラメータ。この値が null になることはありません。

consumer Consumer: 完了時に呼び出されるコールバック。この値が null になることはありません。