IsolatedService

public abstract class IsolatedService
extends Service

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.app.Service
         ↳ android.adservices.ondevicepersonalization.IsolatedService


呼び出しで ODP によって開始されるサービスの基本クラス OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) 分離された状態で実行され、 プロセスをご覧ください。サービスは、 呼び出し元アプリで SurfaceView を使用し、永続的な結果をデバイスに書き込む フェデレーション分析でクロスデバイス統計分析や、 フェデレーション ラーニングによるモデルです。 クライアント アプリは OnDevicePersonalizationManager を使用して IsolatedService とやり取りします。

概要

継承される定数

パブリック コンストラクタ

IsolatedService()

パブリック メソッド

final EventUrlProvider getEventUrlProvider(RequestToken requestToken)

現在のリクエストの EventUrlProvider を返します。

final FederatedComputeScheduler getFederatedComputeScheduler(RequestToken requestToken)

現在のリクエストの FederatedComputeScheduler を返します。

final MutableKeyValueStore getLocalData(RequestToken requestToken)

LOCAL_DATA テーブルのデータ アクセス オブジェクトを返します。

final LogReader getLogReader(RequestToken requestToken)

REQUESTS テーブルと EVENTS テーブルの DAO を返します。 IsolatedService によって読み取り可能な行にのみアクセスできます。

final KeyValueStore getRemoteData(RequestToken requestToken)

REMOTE_DATA テーブルのデータ アクセス オブジェクトを返します。

final UserData getUserData(RequestToken requestToken)

プラットフォームが提供する、現在のリクエストに対する UserData を返します。

IBinder onBind(Intent intent)

IsolatedService へのバインディングを処理します。

void onCreate()

IsolatedService のバインダーを作成します。

abstract IsolatedWorker onRequest(RequestToken requestToken)

クライアント リクエストを処理する IsolatedWorker のインスタンスを返します。

継承されるメソッド

パブリック コンストラクタ

パブリック メソッド

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

現在のリクエストの EventUrlProvider を返します。EventUrlProvider HTML に埋め込める URL を提供します。HTML が特定の形式でレンダリングされると、 WebView の場合、プラットフォームはこれらの URL へのリクエストをインターセプトし、 IsolatedWorker#onEvent(EventInput, Consumer)

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。 この値が null になることはありません。

戻り値
EventUrlProvider イベント トラッキング URL を返す EventUrlProvider。 この値が null になることはありません。

関連項目:

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

現在のリクエストの FederatedComputeScheduler を返します。FederatedComputeScheduler は、連携コンピューティング ジョブのスケジュールとキャンセルに使用できます。「 フェデレーション コンピューティングには、フェデレーション ラーニングとフェデレーション分析ジョブが含まれます。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。 この値が null になることはありません。

戻り値
FederatedComputeScheduler 連携コンピューティング ジョブを返す FederatedComputeScheduler 使用します。 この値が null になることはありません。

関連項目:

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

LOCAL_DATA テーブルのデータ アクセス オブジェクトを返します。LOCAL_DATA テーブルは あらゆるデータの保存に使用できる Key-Value ストアです。この表の内容は 独立したプロセスで実行されているサービスにのみ公開され、外部に送信することはできない ダウンロードします

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。 この値が null になることはありません。

戻り値
MutableKeyValueStore LOCAL_DATA テーブルへのアクセスを提供する MutableKeyValueStore オブジェクト。 返された MutableKeyValueStore のメソッドがブロッキング オペレーションであり、 メインスレッドやバインダー スレッドではなく、ワーカー スレッドから呼び出す必要があります。 この値が null になることはありません。

関連項目:

getLogReader

public final LogReader getLogReader (RequestToken requestToken)

REQUESTS テーブルと EVENTS テーブルの DAO を返します。 IsolatedService によって読み取り可能な行にのみアクセスできます。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。 この値が null になることはありません。

戻り値
LogReader REQUESTS テーブルと EVENTS テーブルへのアクセスを可能にする LogReader オブジェクト。 返された LogReader のメソッドがブロッキング オペレーションであり、 メインスレッドやバインダー スレッドではなく、ワーカー スレッドから呼び出す必要があります。 この値が null になることはありません。

関連項目:

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

REMOTE_DATA テーブルのデータ アクセス オブジェクトを返します。REMOTE_DATA テーブルは読み取り専用です。 宣言されたエンドポイントから定期的にダウンロードされるデータを含む Key-Value ストア タグで指定する必要があります。次に例を示します。

<!-- Contents of res/xml/OdpSettings.xml -->
 <on-device-personalization>
 <!-- Name of the service subclass -->
 <service "com.example.odpsample.SampleService">
   <!-- If this tag is present, ODP will periodically poll this URL and
    download content to populate REMOTE_DATA. Adopters that do not need to
    download content from their servers can skip this tag. -->
   <download-settings url="https://example.com/get" />
 </service>
 </on-device-personalization>
 

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。 この値が null になることはありません。

戻り値
KeyValueStore REMOTE_DATA テーブルへのアクセスを提供する KeyValueStore オブジェクト。「 返された KeyValueStore のメソッドはブロッキング オペレーションであり、 ワーカー スレッドから呼び出され、メインスレッドやバインダー スレッドからは呼び出されません。 この値が null になることはありません。

関連項目:

getUserData

public final UserData getUserData (RequestToken requestToken)

プラットフォームが提供する、現在のリクエストに対する UserData を返します。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン。 この値が null になることはありません。

戻り値
UserData UserData オブジェクト。 この値は null であっても構いません。

関連項目:

onBind

public IBinder onBind (Intent intent)

IsolatedService へのバインディングを処理します。

パラメータ
intent Intent: Context.bindService で指定された、このサービスにバインドするために使用されたインテント。なお、 含まれていないため、ここには表示されません。 この値が null になることはありません。

戻り値
IBinder この値は null であっても構いません。

onCreate

public void onCreate ()

IsolatedService のバインダーを作成します。

onRequest

public abstract IsolatedWorker onRequest (RequestToken requestToken)

クライアント リクエストを処理する IsolatedWorker のインスタンスを返します。

パラメータ
requestToken RequestToken: サービスへの現在のリクエストを識別する不透明トークン サービス メソッドに渡す必要があります。 この値が null になることはありません。

戻り値
IsolatedWorker この値が null になることはありません。