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)
設定之後可使用 |
void
|
beforeUnloadSdk()
執行讓 SDK 在卸載之前釋出資源所需的工作。 |
final
Context
|
getContext()
傳回先前透過 |
abstract
View
|
getView(Context windowContext, Bundle params, int width, int height)
要求將檢視畫面從遠端轉譯至用戶端應用程式程序。 |
abstract
SandboxedSdk
|
onLoadSdk(Bundle params)
執行讓 SDK 啟動處理要求所需的工作。 |
繼承方法 | |
---|---|
公用建構函式
公用方法
attachContext
public final void attachContext (Context context)
設定之後可使用 getContext()
接收的 SDK Context
。這個方法會在叫用 onLoadSdk(Bundle)
前呼叫。需要 Context
的作業皆不應在此之前執行,因為直到呼叫此方法後,SandboxedSdkProvider#getContext
才不會傳回空值。
如果已設定基礎結構定義,就會擲回 IllegalStateException。
參數 | |
---|---|
context |
Context :新的基礎結構定義。
此值不能為 null 。 |
beforeUnloadSdk
public void beforeUnloadSdk ()
執行讓 SDK 在卸載前釋出資源所需的工作。
SDK 沙箱管理工具會在卸載 SDK 前呼叫此函式。SDK 無法叫用任何先前透過 SandboxedSdk.getInterface()
傳回至用戶端的 Binder。
SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫。
getContext
public final Context getContext ()
傳回先前透過 SandboxedSdkProvider#attachContext
設定的 Context
。如果先前未設定結構定義,則會傳回空值。
傳回 | |
---|---|
Context |
getView
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
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 |