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