فئة مساعدة لفتح الحاويات.
هذا برنامج تضمين حول openContainer(String, Container.Callback).
للمستخدمين الذين لا يحتاجون إلى المستوى الدقيق من التحكم الذي توفره.
هناك ثلاث حالات يمكن أن تكون فيها الحاوية:
- الإعداد التلقائي: هذه هي الحاوية التي يتمّ شحنها مع التطبيق (إما برنامج ثنائي). الحاوية أو ملف json يتم تحويله إلى حاوية).
- قديمة: حاوية تم تنزيلها من الخادم، ولكن ليس مؤخرًا.
- حديثة: حاوية تم تنزيلها من الخادم مؤخرًا.
إليك مثال حيث يريد المتصل الانتظار لمدة تصل إلى 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 | كائن سيتلقى إشعارًا عندما تكون الحاوية متاحة للاستخدام. | |
| تعداد | ContainerOpener.OpenType | الإعدادات المفضّلة لفتح الحاوية. | |
الملخّص الثابت
| طويلة | DEFAULT_TIMEOUT_IN_MILLIS | المهلة التلقائية بالملي ثانية لطلب الحاوية. |
ملخّص الطريقة العامة
| ثابتة ContainerOpener.ContainerFuture |
openContainer(TagManager tagManager، سلسلة containerId، ContainerOpener.OpenType openType، طويلة timeoutInMillis)
|
| ثابتة فراغ |
openContainer(TagManager tagManager, String containerId أو ContainerOpener.OpenType openType أو وقت وقت طويلInMillis أو ContainerOpener.Notifier notifier)
|
الثوابت
علنية ثابتة النِّهَائِي طويل DEFAULT_TIMEOUT_IN_MILLIS
المهلة التلقائية بالملي ثانية لطلب الحاوية.
الطرق العامة
علنية ثابتة ContainerOpener.ContainerFuture openContainer (TagManager tagManager، سلسلة containerId، ContainerOpener.OpenType openType, طويل timeoutInMillis)
الانتظار حتى timeoutInMillis مرة حتى يتم تحميل الحاوية (غير تلقائي أو حديث
استنادًا إلى قيمة openType المحدّدة).
إذا كان النوع المفتوح هو PREFER_NON_DEFAULT، هو نوع غير تلقائي (يتم حفظه أو استرداده من
(الشبكة) المحملة وإلغاء حظر ContainerFuture بمجرد
يحدث أحد الإجراءات التالية:
- تحميل حاوية محفوظة.
- إذا لم تكن هناك حاوية محفوظة، فسيتم تحميل حاوية شبكة أو حدث خطأ في الشبكة.
- لانتهاء مهلة الموقّت.
في حال حدوث خطأ في الشبكة أو انتهاء صلاحية الموقّت، يمكن استعادة get().
كحاوية افتراضية.
إذا كان النوع المفتوح هو PREFER_FRESH، نوع جديد (محفوظ أو تم استرداده من
(الشبكة) المحملة وإلغاء حظر ContainerFuture بمجرد
يحدث أحد الإجراءات التالية:
- تحميل حاوية جديدة محفوظة.
- إذا لم تكن هناك حاوية محفوظة أو كانت الحاوية المحفوظة قديمة، فإن حاوية الشبكة هي تحميلاً أو حدوث خطأ في الشبكة.
- لانتهاء مهلة الموقّت.
في حال حدوث خطأ في الشبكة أو انتهاء صلاحية الموقّت، يمكن استعادة get().
حاوية افتراضية أو حاوية قديمة محفوظة.
إذا اتصلت بـ openContainer مرة أخرى باستخدام containerId محدد،
سيتم إرجاع ContainerFuture مع عرض get()
نفس الحاوية كما حدث في المكالمة الأولى.
المعلمات
| tagManager | TagManager الذي سيتم طلب openContainer عليه |
| containerId | رقم تعريف الحاوية المطلوب تحميلها |
| openType | اختيار كيفية فتح الحاوية |
| timeoutInMillis | الحد الأقصى لعدد المللي ثانية للانتظار لتحميل الحاوية (من
المتجر المحفوظ). وفي حال القيمة "خالية"، سيتم استخدام DEFAULT_TIMEOUT_IN_MILLIS. |
المرتجعات
- كائنًا تُرجع طريقة الحصول عليه الحاوية الحاوية، ولكن يمكنه منع ما يصل إلى المهلة InMillis حتى تصبح الحاوية متوفرة.
علنية ثابتة فراغ openContainer (TagManager tagManager وسلسلة tagManager وContainerOpener.OpenType tagManager وطويلة tagManager وContainerOpener.NotifierContainer1ifier.
الانتظار حتى timeoutInMillis مرة حتى يتم تحميل الحاوية (غير تلقائي أو حديث
استنادًا إلى قيمة openType المحدّدة).
إذا كان النوع المفتوح هو PREFER_NON_DEFAULT، هو نوع غير تلقائي (يتم حفظه أو استرداده من
(الشبكة) وتمريرها إلى القائم بالإشعار. يتم تلقّي مُرسِل الإشعار بمجرد
يحدث أحد الإجراءات التالية:
- تحميل حاوية محفوظة.
- إذا لم تكن هناك حاوية محفوظة، فسيتم تحميل حاوية شبكة أو حدث خطأ في الشبكة.
- لانتهاء مهلة الموقّت.
في حال حدوث خطأ في الشبكة أو انتهاء صلاحية الموقّت، يتم تمرير الحاوية إلى
containerAvailable(Container) هي حاوية تلقائية.
إذا كان النوع المفتوح هو PREFER_FRESH، نوع جديد (محفوظ أو تم استرداده من
(الشبكة) وتمريرها إلى القائم بالإشعار. يتم تلقّي مُرسِل الإشعار بمجرد
يحدث أحد الإجراءات التالية:
- تحميل حاوية جديدة محفوظة.
- إذا لم تكن هناك حاوية محفوظة أو كانت الحاوية المحفوظة قديمة، فسيتم تحميل حاوية شبكة. أو حدوث خطأ في الشبكة.
- لانتهاء مهلة الموقّت.
في حال حدوث خطأ في الشبكة أو انتهاء صلاحية الموقّت، يتم تمرير الحاوية إلى
قد تكون containerAvailable(Container) حاوية تلقائية أو قديمة.
إذا اتصلت بـ openContainer(TagManager, String, ContainerOpener.OpenType, Long) مرة أخرى باستخدام containerId محدد،
سيتم إرسال الحاوية نفسها التي تم إرجاعها من المكالمة السابقة إلى إشعار الإشعار بمجرد
المتوفرة.
المعلمات
| tagManager | TagManager الذي سيتم طلب openContainer عليه |
| containerId | رقم تعريف الحاوية المطلوب تحميلها |
| openType | اختيار كيفية فتح الحاوية |
| timeoutInMillis | الحد الأقصى لعدد المللي ثانية للانتظار لتحميل الحاوية (من
المتجر و/أو الشبكة المحفوظة). وفي حال القيمة "خالية"، سيتم استخدام DEFAULT_TIMEOUT_IN_MILLIS. |
| مُرسِل الإشعار | بإشعار سيتم طلبه عند توفر الحاوية. ستكون يتم طلبه مع الحاوية المحفوظة أو الحاوية في الشبكة، إذا كانت متاحة وتم تحميلها قبل انتهاء المهلة. وبخلاف ذلك، سيتم طلبها باستخدام الحاوية التلقائية. وقد يتم استدعاء مُرسِل الإشعار من سلسلة محادثات مختلفة. |