API 级别 34 中添加
也在广告服务扩展 4 中添加

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 Context,然后可使用 getContext() 接收该 SDK。

void beforeUnloadSdk()

执行 SDK 在卸载前释放其资源所需的工作。

final Context getContext()

返回之前通过 SandboxedSdkProvider#attachContext 设置的 Context

abstract View getView(Context windowContext, Bundle params, int width, int height)

请求远程呈现到客户端应用进程的视图。

abstract SandboxedSdk onLoadSdk(Bundle params)

执行 SDK 开始处理请求所需的工作。

继承的方法

公共构造函数

SandboxedSdkProvider

API 级别 34 中添加
也在广告服务扩展 4 中添加
public SandboxedSdkProvider ()

公共方法

attachContext

API 级别 34 中添加
也在广告服务扩展 4 中添加
public final void attachContext (Context context)

设置 SDK Context,然后可使用 getContext() 接收该上下文。此方法在调用 onLoadSdk(Bundle) 之前调用。在此之前不应执行需要 Context 的操作,因为在调用此方法之前,SandboxedSdkProvider#getContext 会返回 null。

如果已设置基本上下文,则会抛出 IllegalStateException。

参数
context Context:新的基本上下文。 此值不能为 null

beforeUnloadSdk

API 级别 34 中添加
也在广告服务扩展 4 中添加
public void beforeUnloadSdk ()

执行 SDK 在卸载前释放其资源所需的工作。

SDK 沙盒管理器会在卸载 SDK 前调用此函数。SDK 对之前通过 SandboxedSdk.getInterface() 返回给客户端的 Binder 的任何调用均应失败。

SDK 不应在此处执行任何长时间运行的任务,例如 I/O 和网络调用。

getContext

API 级别 34 中添加
也在广告服务扩展 4 中添加
public final Context getContext ()

返回之前通过 SandboxedSdkProvider#attachContext 设置的 Context。如果之前未设置任何上下文,此方法将返回 null。

开球回攻次数
Context

getView

API 级别 34 中添加
也在广告服务扩展 4 中添加
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

API 级别 34 中添加
也在广告服务扩展 4 中添加
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