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 中顯示,並將持續性結果寫入裝置端儲存空間,供聯合數據分析進行跨裝置統計分析,或供聯合學習進行模型訓練。用戶端應用程式會使用 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 中的方法是封鎖作業,應從背景工作執行緒呼叫,而非主執行緒或 Binder 執行緒。此值不能為 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 資料表是唯讀鍵/值儲存庫,包含定期從 在服務的 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 中的各個方法都是封鎖作業,應從背景工作執行緒呼叫,而非主執行緒或 Binder 執行緒。此值不能為 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