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 | 
          |