SandboxedSdkProvider
public abstract class SandboxedSdkProvider
extends Object
java.lang.Object | |
↳ | android.app.sdksandbox.SandboxedSdkProvider |
封装了 SDK 沙盒可用于与其加载的 SDK 进行交互的 API。
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()
接收此 Context。此方法会在调用 onLoadSdk(Bundle)
之前调用。在此之前不应执行任何需要 Context
的操作,因为在调用此方法之前,SandboxedSdkProvider#getContext
将返回 null。
如果已设置基本 Context,则抛出 IllegalStateException。
参数 | |
---|---|
context |
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,则此方法将返回 null。
返回 | |
---|---|
Context |
getView
public abstract View getView (Context windowContext, Bundle params, int width, int height)
请求将视图远程渲染到客户端应用进程。
返回将包装到 SurfacePackage
中的 View
。生成的 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 对象的 IBinder 将由客户端用于调用 SDK。此值不能为 null 。 |
抛出 | |
---|---|
LoadSdkException |