SandboxedSdkProvider

public abstract class SandboxedSdkProvider
extends Object

java.lang.Object
   ↳ android.app.sdksandbox.SandboxedSdkProvider


封裝 API,SDK 沙箱可使用此 API 與已載入沙箱內的 SDK 互動。

SDK 必須實作這個抽象類別,才能產生供 SDK 沙箱呼叫的進入點。

摘要

公用建構函式

SandboxedSdkProvider()

公用方法

final void attachContext(Context context)

設定之後可使用 getContext() 接收的 SDK Context

void beforeUnloadSdk()

執行讓 SDK 在卸載之前釋出資源所需的工作。

final Context getContext()

傳回先前透過 SandboxedSdkProvider#attachContext 設定的 Context

abstract View getView(Context windowContext, Bundle params, int width, int height)

要求將檢視畫面從遠端轉譯至用戶端應用程式程序。

abstract SandboxedSdk onLoadSdk(Bundle params)

執行讓 SDK 啟動處理要求所需的工作。

繼承方法

公用建構函式

SandboxedSdkProvider

已加至 API 級別 34
也已納入 Ad Services Extensions 4
public SandboxedSdkProvider ()

公用方法

attachContext

已加至 API 級別 34
也已納入 Ad Services Extensions 4
public final void attachContext (Context context)

設定之後可使用 getContext() 接收的 SDK Context。這個方法會在叫用 onLoadSdk(Bundle) 前呼叫。需要 Context 的作業皆不應在此之前執行,因為直到呼叫此方法後,SandboxedSdkProvider#getContext 才不會傳回空值。

如果已設定基礎結構定義,就會擲回 IllegalStateException。

參數
context Context:新的基礎結構定義。 此值不能為 null

beforeUnloadSdk

已加至 API 級別 34
也已納入 Ad Services Extensions 4
public void beforeUnloadSdk ()

執行讓 SDK 在卸載前釋出資源所需的工作。

SDK 沙箱管理工具會在卸載 SDK 前呼叫此函式。SDK 無法叫用任何先前透過 SandboxedSdk.getInterface() 傳回至用戶端的 Binder。

SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫。

getContext

已加至 API 級別 34
也已納入 Ad Services Extensions 4
public final Context getContext ()

傳回先前透過 SandboxedSdkProvider#attachContext 設定的 Context。如果先前未設定結構定義,則會傳回空值。

傳回
Context

getView

已加至 API 級別 34
也已納入 Ad Services Extensions 4
public abstract View getView (Context windowContext, 
                Bundle params, 
                int width, 
                int height)

要求將檢視畫面從遠端轉譯至用戶端應用程式程序。

傳回的 View 將包裝至 SurfacePackage。產生的 SurfacePackage 將傳回至用戶端應用程式。

SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫,這可能導致 SDK 無法接收來自用戶端的要求。

參數
windowContext Context:螢幕的 Context,用於顯示檢視畫面。此值不能為 null

params Bundle:從要求檢視畫面的用戶端應用程式傳出的參數清單。此值不能為 null

width int:傳回的檢視畫面會以此值為視窗寬度進行版面配置,單位為像素。

height int:傳回的檢視畫面會以此值為視窗高度進行版面配置,單位為像素。

傳回
View SDK 沙箱向要求檢視畫面的用戶端應用程式傳遞的 View 此值不能為 null

onLoadSdk

已加至 API 級別 34
也已納入 Ad Services Extensions 4
public abstract SandboxedSdk onLoadSdk (Bundle params)

執行讓 SDK 啟動處理要求所需的工作。

SDK 沙箱會在載入 SDK 後呼叫此函式。

為了準備好處理即將發出的要求,SDK 應該執行所需的工作。不過,SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫,這可能導致 SDK 無法接收來自用戶端的要求。此外,如果初始化作業需仰賴 SDK 沙箱中正在載入的其他 SDK,SDK 也不應執行這類作業。

呼叫這個方法之前,SDK 不應執行任何需要 Context 物件的作業。

參數
params Bundle:用戶端載入 SDK 時傳出的參數清單。這個參數可以留空。此值不能為 null

傳回
SandboxedSdk 傳回 SandboxedSdk,並傳遞回用戶端。先前用來建立專案的 IBinder 用戶端將使用 SandboxedSdk 物件呼叫 SDK。 此值不能為 null

擲回
LoadSdkException