SandboxedSdkProvider
  public
  
  
  abstract
  class
  SandboxedSdkProvider
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.app.sdksandbox.SandboxedSdkProvider | 
封装 SDK 沙盒可用于与加载到其中的 SDK 进行交互的 API。
SDK 必须实现此抽象类才能生成入口点,以便 SDK 沙盒通过该入口点对 SDK 进行调用。
总结
公共构造函数 | |
|---|---|
      
      SandboxedSdkProvider()
      
      
     | 
  |
公共方法 | |
|---|---|
        
        
        
        final
        
        void
     | 
  
    
      
      attachContext(Context context)
      
      
        设置 SDK   | 
  
        
        
        
        
        
        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)
设置 SDK Context,然后可使用 getContext() 接收该上下文。此方法在调用 onLoadSdk(Bundle) 之前调用。在此之前不应执行需要 Context 的操作,因为在调用此方法之前,SandboxedSdkProvider#getContext 会返回 null。
 
如果已设置基本上下文,则会抛出 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。如果之前未设置任何上下文,此方法将返回 null。
| 返回 | |
|---|---|
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 应执行任何必要工作来为处理即将到来的请求做好准备。它不应在此处执行任何长时间运行的任务,如 I/O 和网络调用。否则会导致 SDK 无法接收来自客户端的请求。此外,它不应执行依赖于要将其他 SDK 加载到 SDK 沙盒中的初始化操作。
在调用此方法之前,SDK 不应执行任何需要 Context 对象的操作。
| 参数 | |
|---|---|
params | 
        
          Bundle:客户端在加载 SDK 时传递的参数列表。此参数可以为空。此值不能为 null。 | 
      
| 返回 | |
|---|---|
SandboxedSdk | 
        返回将传递回客户端的 SandboxedSdk。用于创建
     客户端将使用 SandboxedSdk 对象调用 SDK。
 
 此值不能为 null。 | 
      
| 抛出 | |
|---|---|
LoadSdkException | 
          |