Class helper untuk membuka container.
Ini adalah wrapper di sekitar metode openContainer(String, Container.Callback)
bagi pengguna yang tidak memerlukan tingkat kontrol mendetail yang disediakannya.
Container dapat berada di tiga status:
- Default: ini adalah container yang dikirim bersama aplikasi (baik container biner atau file json yang dikonversi menjadi container).
- Tidak berlaku: penampung yang telah didownload dari server, tetapi tidak baru-baru ini.
- Baru: penampung yang telah didownload dari server baru-baru ini.
Berikut ini contoh saat pemanggil ingin menunggu hingga 100 milidetik untuk mendapatkan penampung non-default (mengambil penampung default jika waktu habis).
ContainerFuture future = ContainerOpener.openContainer(tagManager, containerId, OpenType.PREFER_NON_DEFAULT, 100); Container container = future.get();
Jika pemanggil ingin diberi tahu secara asinkron saat penampung tersedia, tetapi ingin
menentukan waktu tunggu secara manual menjadi 0,5 detik, maka pemanggil harus membuat subclass
ContainerOpener.Notifier
. Contoh penggunaan:
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. } });
Ringkasan Class Bertingkat
antarmuka | ContainerOpener.ContainerFuture | Objek yang akan menampilkan Penampung. | |
antarmuka | ContainerOpener.Notifier | Objek yang akan menerima notifikasi saat penampung tersedia untuk digunakan. | |
enum | ContainerOpener.OpenType | Preferensi untuk membuka penampung. |
Ringkasan Konstanta
long | DEFAULT_TIMEOUT_IN_MILLIS | Waktu tunggu default dalam milidetik untuk meminta container. |
Ringkasan Metode Publik
static ContainerOpener.ContainerFuture |
openContainer(TagManager tagManager, String containerId, ContainerOpener.OpenType openType, Long timeoutInMillis)
|
void statis |
openContainer(TagManager tagManager, String containerId, ContainerOpener.OpenType openType, Long timeoutInMillis, ContainerOpener.Notifier pemberitahu)
|
Konstanta
public static final long DEFAULT_TIMEOUT_IN_MILLIS
Waktu tunggu default dalam milidetik untuk meminta container.
Metode Publik
public static ContainerOpener.ContainerFuture openContainer (TagManager tagManager, String containerId, ContainerOpener.OpenType openType}{/1
Menunggu pemuatan penampung hingga timeoutInMillis
(non default atau baru, bergantung pada openType
yang ditentukan).
Jika jenis terbuka adalah PREFER_NON_DEFAULT
, penampung non-default (disimpan atau diambil dari
jaringan) akan dimuat dan ContainerFuture dibatalkan pemblokirannya segera setelah
salah satu hal berikut terjadi:
- penampung tersimpan akan dimuat.
- jika tidak ada penampung tersimpan, penampung jaringan dimuat atau terjadi error jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, get()
dapat menampilkan penampung default.
Jika jenis yang terbuka adalah PREFER_FRESH
, penampung baru (disimpan atau diambil dari
jaringan) akan dimuat dan ContainerFuture dibatalkan pemblokirannya segera setelah
salah satu hal berikut terjadi:
- penampung baru yang tersimpan dimuat.
- jika tidak ada penampung tersimpan atau penampung tersimpan sudah usang, penampung jaringan dimuat atau terjadi error jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, get()
dapat menampilkan penampung default atau penampung tersimpan yang sudah tidak berlaku.
Jika Anda memanggil openContainer
untuk kedua kalinya dengan containerId
tertentu,
ContainerFuture
akan ditampilkan, yang get()
-nya akan menampilkan
penampung yang sama seperti panggilan pertama.
Parameter
tagManager | TagManager untuk memanggil openContainer |
containerId | ID penampung yang akan dimuat |
openType | pilihan cara membuka kontainer |
timeoutInMillis | jumlah maksimum milidetik untuk menunggu memuat container (dari penyimpanan tersimpan). Jika null, DEFAULT_TIMEOUT_IN_MILLIS akan digunakan. |
Hasil
- objek yang metode get-nya akan menampilkan container, tetapi dapat memblokir hingga timeoutInMillis hingga container tersedia.
public static void openContainer (TagManager tagManager, String tagManager, ContainerOpener.OpenType tagManager} timeout tagManagerContainerOpener.Notifier
Menunggu pemuatan penampung hingga timeoutInMillis
(non default atau baru, bergantung pada openType
yang ditentukan).
Jika jenis opennya adalah PREFER_NON_DEFAULT
, penampung non-default (disimpan atau diambil dari
jaringan) akan dimuat dan diteruskan ke pemberi notifikasi. Pemberi tahu dipanggil segera setelah
salah satu hal berikut terjadi:
- penampung tersimpan akan dimuat.
- jika tidak ada penampung tersimpan, penampung jaringan dimuat atau terjadi error jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, penampung yang diteruskan ke
containerAvailable(Container)
adalah penampung default.
Jika jenis yang terbuka adalah PREFER_FRESH
, penampung baru (disimpan atau diambil dari
jaringan) akan dimuat dan diteruskan ke pemberi notifikasi. Pemberi tahu dipanggil segera setelah
salah satu hal berikut terjadi:
- penampung baru yang tersimpan dimuat.
- jika tidak ada penampung tersimpan atau penampung tersimpan sudah usang, penampung jaringan akan dimuat atau terjadi error jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, penampung yang diteruskan ke
containerAvailable(Container)
mungkin merupakan penampung default atau penampung tersimpan yang sudah tidak berlaku.
Jika Anda memanggil openContainer(TagManager, String, ContainerOpener.OpenType, Long)
untuk kedua kalinya dengan containerId
tertentu, penampung sama yang ditampilkan dari panggilan sebelumnya akan diteruskan ke pemberi notifikasi segera setelah tersedia.
Parameter
tagManager | TagManager untuk memanggil openContainer |
containerId | ID penampung yang akan dimuat |
openType | pilihan cara membuka kontainer |
timeoutInMillis | jumlah maksimum milidetik untuk menunggu memuat container (dari
toko dan/atau jaringan tersimpan). Jika null, DEFAULT_TIMEOUT_IN_MILLIS akan digunakan. |
notifikasi | {i>notifier<i} yang akan dipanggil ketika kontainer tersedia. Aplikasi akan dipanggil dengan penampung jaringan atau tersimpan, jika tersedia dan dimuat sebelum waktu tunggu. Jika tidak, penampung akan dipanggil dengan penampung default. Pemberi tahu mungkin dipanggil dari thread lain. |