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)

getContext() を使用して受け取れるように SDK Context を設定します。

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

public SandboxedSdkProvider ()

パブリック メソッド

attachContext

public final void attachContext (Context context)

getContext() を使用して受け取れるように SDK Context を設定します。これは onLoadSdk(Bundle) が呼び出される前に呼び出されます。このメソッドが呼び出されるまで SandboxedSdkProvider#getContext は null を返すため、それまでは Context を必要とする操作は実行しないでください。

ベース コンテキストがすでに設定されている場合、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)

クライアント アプリ プロセスにリモートでレンダリングされるビューをリクエストします。

戻り値 ViewSurfacePackage にラップされます。結果の 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 が行います。SDK は、I/O やネットワーク呼び出しなどの長時間実行タスクを行いません。これは、SDK がクライアントからのリクエストを受け取れなくなる可能性が生じるためです。また、他の SDK が SDK サンドボックスに読み込まれることに依存する初期化を行いません。

このメソッドが呼び出されない限り、SDK は Context オブジェクトを必要とする操作を行いません。

パラメータ
params Bundle: クライアントが SDK を読み込むときにクライアントから渡されるパラメータのリスト。空でも構いません。この値を null にすることはできません。

戻り値
SandboxedSdk クライアントに返される SandboxedSdk を返します。SandboxedSdk オブジェクトの作成に使用される IBinder は、クライアントが SDK を呼び出す際に使用されます。 この値が null になることはありません。

例外
LoadSdkException