Class bantuan untuk membuka container.
Ini adalah wrapper di sekitar openContainer(String, Container.Callback)
bagi pengguna yang tidak memerlukan tingkat
kontrol yang lebih baik yang disediakannya.
Ada tiga status yang dapat menampung penampung:
- Default: ini adalah penampung yang disertakan dengan aplikasi (baik biner container 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 waktunya 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 Container. | |
| antarmuka | ContainerOpener.Notifier | Objek yang akan menerima notifikasi saat container tersedia untuk digunakan. | |
| enum | ContainerOpener.OpenType | Preferensi untuk membuka container. | |
Ringkasan Konstanta
| long | DEFAULT_TIMEOUT_IN_MILLIS | Waktu tunggu default dalam milidetik untuk meminta container. |
Ringkasan Metode Publik
| statis ContainerOpener.ContainerFuture |
openContainer(TagManager tagManager, String containerId, ContainerOpener.OpenType openType, Durasi timeoutInMillis)
|
| statis kosong |
openContainer(TagManager tagManager, String containerId, ContainerOpener.OpenType openType, timeoutInMillis, ContainerOpener.Notifier notifier)
|
Konstanta
publik statis final panjang DEFAULT_TIMEOUT_IN_MILLIS
Waktu tunggu default dalam milidetik untuk meminta container.
Metode Publik
publik statis ContainerOpener.ContainerFuture openContainer (TagManager tagManager, String containerId, ContainerOpener.OpenType openType, Long timeoutInMillis)
Menunggu hingga timeoutInMillis waktu hingga penampung dimuat (non-default atau baru
bergantung pada openType yang ditentukan).
Jika jenis yang dibuka adalah PREFER_NON_DEFAULT, jenis non-default (disimpan atau diambil dari
) penampung dimuat dan ContainerFuture tidak diblokir segera setelah
salah satu hal berikut terjadi:
- kontainer tersimpan dimuat.
- jika tidak ada penampung tersimpan, penampung jaringan dimuat atau terjadi error jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, get() mungkin menampilkan
container default.
Jika jenis yang dibuka adalah PREFER_FRESH, jenis baru (disimpan atau diambil dari
) penampung dimuat dan ContainerFuture tidak diblokir segera setelah
salah satu hal berikut terjadi:
- kontainer baru tersimpan dimuat.
- jika tidak ada penampung tersimpan atau penampung tersimpan sudah usang, penampung jaringan dimuat atau terjadi kesalahan jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, get() mungkin menampilkan
penampung default atau
penampung usang yang tersimpan.
Jika Anda memanggil openContainer untuk kedua kalinya dengan containerId tertentu,
ContainerFuture akan ditampilkan yang get()-nya akan ditampilkan
kontainer yang sama seperti
yang dilakukan panggilan pertama.
Parameter
| tagManager | TagManager untuk memanggil openContainer |
| ID penampung | ID penampung yang akan dimuat |
| openType | pilihan cara membuka penampung |
| timeoutInMillis | jumlah maksimum milidetik untuk menunggu pemuatan container (dari
toko tersimpan). Jika null, DEFAULT_TIMEOUT_IN_MILLIS akan digunakan. |
Hasil
- objek yang metode get-nya akan mengembalikan kontainer, tetapi dapat memblokir hingga timeoutInMillis hingga container tersedia.
publik statis kosong openContainer (TagManager tagManager, String tagManager, ContainerOpener.OpenType tagManager, Panjang tagManager, ContainerOpener.Notifier
Menunggu hingga timeoutInMillis waktu hingga penampung dimuat (non-default atau baru
bergantung pada openType yang ditentukan).
Jika jenis yang dibuka adalah PREFER_NON_DEFAULT, jenis non-default (disimpan atau diambil dari
) yang dimuat dan diteruskan ke pengirim. Pemberitahu dipanggil segera setelah
salah satu hal berikut terjadi:
- kontainer tersimpan 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 dibuka adalah PREFER_FRESH, jenis baru (disimpan atau diambil dari
) yang dimuat dan diteruskan ke pengirim. Pemberitahu dipanggil segera setelah
salah satu hal berikut terjadi:
- kontainer baru tersimpan dimuat.
- jika tidak ada penampung tersimpan atau penampung tersimpan sudah usang, penampung jaringan dimuat atau terjadi kesalahan jaringan.
- timer berakhir.
Jika terjadi error jaringan atau timer berakhir, penampung yang diteruskan ke
containerAvailable(Container) dapat berupa penampung tersimpan default atau penampung tersimpan yang sudah tidak berlaku.
Jika Anda memanggil openContainer(TagManager, String, ContainerOpener.OpenType, Long) untuk kedua kalinya dengan containerId tertentu,
penampung yang sama yang ditampilkan dari panggilan sebelumnya
akan diteruskan ke pengirim segera setelah
itu tersedia.
Parameter
| tagManager | TagManager untuk memanggil openContainer |
| ID penampung | ID penampung yang akan dimuat |
| openType | pilihan cara membuka penampung |
| timeoutInMillis | jumlah maksimum milidetik untuk menunggu pemuatan container (dari
toko dan/atau jaringan tersimpan). Jika null, DEFAULT_TIMEOUT_IN_MILLIS akan digunakan. |
| pemberi notifikasi | pemberitahuan yang akan dipanggil saat penampung tersedia. Ini akan menjadi dipanggil dengan kontainer jaringan atau tersimpan, jika tersedia dan dimuat sebelum waktu tunggu. Jika tidak, pemanggilan akan dipanggil dengan penampung default. Pemberitahu dapat dipanggil dari thread yang berbeda. |