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 中的內容,並將永久結果寫入裝置端儲存空間,聯合 Analytics (分析) 會使用這些資訊進行跨裝置統計分析,或是利用聯合學習來訓練模型。用戶端應用程式會使用 OnDevicePersonalizationManagerIsolatedService 互動。

摘要

繼承常數

公用建構函式

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 執行個體。

繼承方法

公用建構函式

IsolatedService

public IsolatedService ()

公用方法

getEventUrlProvider

public final EventUrlProvider getEventUrlProvider (RequestToken requestToken)

針對目前要求傳回 EventUrlProviderEventUrlProvider 會提供可嵌入 HTML 的網址。當 HTML 在 WebView 中算繪時,平台會攔截傳送至這些網址的要求並叫用 IsolatedWorker#onEvent(EventInput, Consumer)

參數
requestToken RequestToken:不透明權杖,用於識別服務目前的要求。此值不能為 null

傳回
EventUrlProvider 傳回事件追蹤網址的 EventUrlProvider。此值不能為 null

另請參閱:

getFederatedComputeScheduler

public final FederatedComputeScheduler getFederatedComputeScheduler (RequestToken requestToken)

針對目前要求傳回 FederatedComputeSchedulerFederatedComputeScheduler 可用來排定及取消聯合運算工作。聯合運算包括聯合學習和聯合分析工作。

參數
requestToken RequestToken:不透明權杖,用於識別服務目前的要求。此值不能為 null

傳回
FederatedComputeScheduler 傳回聯合運算工作排程器的 FederatedComputeScheduler。此值不能為 null

另請參閱:

getLocalData

public final MutableKeyValueStore getLocalData (RequestToken requestToken)

傳回 LOCAL_DATA 資料表的資料存取物件。LOCAL_DATA 資料表是永久的鍵/值存放區,服務可用來儲存任何資料。這個資料表的內容只有在獨立程序中執行的服務才能查看,而且無法傳送至裝置外。

參數
requestToken RequestToken:不透明權杖,用於識別服務目前的要求。此值不能為 null

傳回
MutableKeyValueStore 提供 LOCAL_DATA 資料表存取權的 MutableKeyValueStore 物件。 傳回的 MutableKeyValueStore 中的方法為封鎖作業,您應從工作站執行緒 (而非主執行緒或繫結器執行緒) 呼叫。此值不能為 null

另請參閱:

getLog 讀取者

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 資料表是唯讀鍵/值儲存庫,其中包含定期從服務 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

另請參閱:

取得使用者資料

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