ContainerOpener

パブリック クラス ContainerOpener

コンテナを開くためのヘルパークラス。

これは openContainer(String, Container.Callback) のラッパーです メソッドを提供します。

コンテナには次の 3 つの状態があります。

  • デフォルト: アプリと一緒に出荷されるコンテナ(バイナリまたは (コンテナに変換される JSON ファイルなど)を返します。
  • 最新でない: サーバーからダウンロードされたものの、最近ではないコンテナ。
  • 最新: サーバーから最近ダウンロードされたコンテナ。

次の例では、呼び出し元が IP アドレスを取得するまで最大 100 ミリ秒 デフォルト以外のコンテナ(タイムアウトした場合にデフォルトのコンテナを取得)。

   ContainerFuture future =
       ContainerOpener.openContainer(tagManager, containerId, OpenType.PREFER_NON_DEFAULT, 100);
   Container container = future.get();
 

コンテナが利用可能になったことを呼び出し元が非同期的に通知したいと考えているが、 タイムアウトを 0.5 秒に手動で指定すると、呼び出し元は ContainerOpener.Notifier。使用例:

   ContainerOpener.openContainer(tagManager, containerId, OpenType.PREFER_NON_DEFAULT,
       500, new ContainerOpener.Notifier() {
         @Override
         void containerAvailable(Container container) {
           // Code to handle the container available notification and save the container.
         }
       });
 

ネストクラスの概要

インターフェース ContainerOpener.ContainerFuture コンテナを返すオブジェクト。
インターフェース ContainerOpener.Notifier コンテナが使用可能になったときに通知を受け取るオブジェクト。
enum ContainerOpener.OpenType コンテナを開くための設定。

定数の概要

long DEFAULT_TIMEOUT_IN_MILLIS コンテナのリクエストのデフォルトのタイムアウト(ミリ秒単位)。

パブリック メソッドの概要

静的 ContainerOpener.ContainerFuture
openContainerTagManager tagManagerString containerIdContainerOpener.OpenType openTypeLong timeoutInMillis
静的 無効
openContainerTagManager tagManagerString containerIdContainerOpener.OpenType openTypeLong timeoutInMillisContainerOpener.Notifier notifier

定数

<ph type="x-smartling-placeholder"></ph> 一般公開 静的 ファイナル 長い DEFAULT_TIMEOUT_IN_MILLIS

コンテナのリクエストのデフォルトのタイムアウト(ミリ秒単位)。

定数値: <ph type="x-smartling-placeholder"></ph> 2,000 をご覧ください。

パブリック メソッド

<ph type="x-smartling-placeholder"></ph> 一般公開 静的 ContainerOpener.ContainerFuture をご覧ください。 openContainer TagManager tagManagerString containerIdContainerOpener.OpenType openTypeLong timeoutInMillis

コンテナが読み込まれるまで、最大で timeoutInMillis 時間待機します(デフォルト以外または最新)。 (指定された openType に応じて異なります)。

オープンタイプが PREFER_NON_DEFAULT の場合、デフォルト以外(保存または取得元) コンテナが読み込まれ、すぐに ContainerFuture のブロックが解除されます。 次のいずれかが発生します。

  • 保存されたコンテナが読み込まれます。
  • 保存されたコンテナがない場合、ネットワーク コンテナが読み込まれるか、ネットワーク エラーが発生した場合に行われます。
  • タイマーが期限切れになります

ネットワーク エラーが発生したり、タイマーが期限切れになったりすると、get() が次の結果を返すことがあります。 作成します。

オープンタイプが PREFER_FRESH の場合、新規(保存または取得元) コンテナが読み込まれ、すぐに ContainerFuture のブロックが解除されます。 次のいずれかが発生します。

  • 読み込まれた新しいコンテナが読み込まれます。
  • 保存されたコンテナがない場合や、保存されたコンテナが最新ではない場合、 ネットワーク エラーが発生したとき。
  • タイマーが期限切れになります

ネットワーク エラーが発生したり、タイマーが期限切れになったりすると、get() が次の結果を返すことがあります。 保存されている古いコンテナの いずれかを選択できます

containerId を指定して openContainer をもう一度呼び出すと、 ContainerFuture が返され、その get() が 最初の呼び出しと同じコンテナが作成されます。

パラメータ
tagManager openContainer を呼び出す TagManager
containerId 読み込むコンテナの ID
openType コンテナを開く方法は
timeoutInMillis コンテナの読み込みを待機する最大時間(ミリ秒)を 保存済みの店舗など)が表示されます。null の場合、DEFAULT_TIMEOUT_IN_MILLIS が使用されます。
戻り値
  • get メソッドがコンテナを返すオブジェクトです。ただし、 コンテナが使用可能になるまで TimeoutInMillis。

<ph type="x-smartling-placeholder"></ph> 一般公開 静的 無効 openContainer TagManager tagManagerString tagManagerContainerOpener.OpenType tagManagerLong tagManagerContainerOpener.Notifier

コンテナが読み込まれるまで、最大で timeoutInMillis 時間待機します(デフォルト以外または最新)。 (指定された openType に応じて異なります)。

オープンタイプが PREFER_NON_DEFAULT の場合、デフォルト以外(保存または取得元) コンテナが読み込まれて Notifier に渡されます。Notifier はできるだけ早く呼び出されます 次のいずれかが発生します。

  • 保存されたコンテナが読み込まれます。
  • 保存されたコンテナがない場合、ネットワーク コンテナが読み込まれるか、ネットワーク エラーが発生した場合に行われます。
  • タイマーが期限切れになります

ネットワーク エラーが発生するかタイマーが期限切れになると、コンテナは containerAvailable(Container) はデフォルトのコンテナです。

オープンタイプが PREFER_FRESH の場合、新規(保存または取得元) コンテナが読み込まれて Notifier に渡されます。Notifier はできるだけ早く呼び出されます 次のいずれかが発生します。

  • 読み込まれた新しいコンテナが読み込まれます。
  • 保存されたコンテナがない場合や保存されたコンテナが古くなっている場合は、ネットワーク コンテナが読み込まれます。 またはネットワークエラーが発生したときに 応答します
  • タイマーが期限切れになります

ネットワーク エラーが発生するかタイマーが期限切れになると、コンテナは containerAvailable(Container) は、デフォルトのコンテナか、古い保存済みコンテナの場合があります。

containerId を指定して openContainer(TagManager, String, ContainerOpener.OpenType, Long) をもう一度呼び出すと、 前の呼び出しで返されたものと同じコンテナが、できるだけ早く Notifier に渡されます。 提供します

パラメータ
tagManager openContainer を呼び出す TagManager
containerId 読み込むコンテナの ID
openType コンテナを開く方法は
timeoutInMillis コンテナの読み込みを待機する最大時間(ミリ秒)を 保存済みの店舗やネットワーク)。null の場合、DEFAULT_TIMEOUT_IN_MILLIS が使用されます。
Notifier コンテナが使用可能になると呼び出される Notifier。次のようになります。 保存済みコンテナまたはネットワーク コンテナ(使用可能な場合)で呼び出され、タイムアウトの前に読み込まれます。 それ以外の場合は、デフォルトのコンテナで呼び出されます。Notifier は API 呼び出しから 別のスレッドに移動できます。