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)

連携コンピューティング ジョブに使用する単一のトレーニング サンプルを生成します。

パブリック メソッド

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 としてエラーコード OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED とともに呼び出し元アプリに伝播されます。呼び出し元アプリにプライベート データが漏洩することを避けるため、より詳細なエラーレポートは提供されていません。IsolatedService がバックエンドにエラー統計情報を報告する必要がある場合は、ロギング用のエラーデータを ExecuteOutput に入力し、Federated Analytics を利用してエラーレポートの集計を行う必要があります。

このメソッドが 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 としてエラーコード OnDevicePersonalizationException.ERROR_ISOLATED_SERVICE_FAILED とともに呼び出し元アプリに伝播されます。

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

onTrainingExample

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

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

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

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