isolatedService

public abstract class IsolatedService
extends Service

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


OnDevicePersonalizationManager#execute(ComponentName, PersistableBundle, java.util.concurrent.Executor, OutcomeReceiver) の呼び出しで ODP によって開始され、分離されたプロセスで実行されるサービスの基本クラス。このサービスは、呼び出し元アプリの 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)

IsolatedService で読み取り可能な行へのアクセスを提供する、REQUESTS テーブルと EVENTS テーブルの DAO を返します。

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 のインスタンスを返します。

継承されるメソッド

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

isolatedService

public IsolatedService ()

パブリック メソッド

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)

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

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

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

関連項目:

getRemoteData

public final KeyValueStore getRemoteData (RequestToken requestToken)

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

<!-- 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 になることはありません。