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 |