Container'ları açmak için yardımcı sınıfı.
Bu, openContainer(String, Container.Callback)
yönteminin sağladığı hassas kontrol düzeyine ihtiyaç duymayan kullanıcılar için bir sarmalayıcıdır.
Bir kapsayıcının içinde bulunabileceği üç durum vardır:
- Varsayılan: Bu, uygulamayla birlikte gönderilen kapsayıcıdır (ikili program kapsayıcısı veya container'a dönüştürülmüş bir json dosyası).
- Eski: Sunucudan indirilmiş ancak yakın zamanda indirilmemiş bir kapsayıcıdır.
- Fresh: Sunucudan kısa süre önce indirilen bir kapsayıcı.
Arayanın varsayılan olmayan kapsayıcıyı almak için 100 milisaniyeye kadar beklemek istediği bir örneği aşağıda bulabilirsiniz (zaman aşımına uğrarsa varsayılan kapsayıcıyı alır).
ContainerFuture future = ContainerOpener.openContainer(tagManager, containerId, OpenType.PREFER_NON_DEFAULT, 100); Container container = future.get();
Arayan, kapsayıcı kullanılabilir olduğunda eşzamansız olarak bildirim almak istiyor ancak zaman aşımını 0,5 saniye olarak manuel olarak belirtmek istiyorsa ContainerOpener.Notifier
alt sınıfını belirlemelidir. Örnek kullanım:
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. } });
İç İçe geçmiş Sınıf Özeti
arayüz | ContainerOpener.ContainerFuture | Kapsayıcı döndürecek bir nesne. | |
arayüz | ContainerOpener.Notifier | Kapsayıcı kullanıma sunulduğunda bildirim alacak nesne. | |
enum | ContainerOpener.OpenType | Kapsayıcı açma tercihleri. |
Sabit Özet
uzun | DEFAULT_TIMEOUT_IN_MILLIS | Kapsayıcı isteği için milisaniye cinsinden varsayılan zaman aşımı. |
Herkese Açık Yöntem Özeti
statik ContainerOpener.ContainerFuture |
openContainer(TagManager tagManager, Dize containerId, ContainerOpener.OpenType openType, Uzun timeoutInMillis)
|
statik geçersiz |
openContainer(TagManager tagManager, Dize containerId, ContainerOpener.OpenType openType, Uzun timeoutInMillis, ContainerOpener.Notifier bildirimcisi)
|
Sabitler
herkese açık statik nihai uzun DEFAULT_TIMEOUT_IN_MILLIS
Kapsayıcı isteği için milisaniye cinsinden varsayılan zaman aşımı.
Herkese Açık Yöntemler
herkese açık static ContainerOpener.ContainerFuture openContainer (TagManager tagManager, Dize tagManager, ContainerOpener.OpenType tagManagerAçık tagManager, Dize tagManager
Bir kapsayıcının yüklenmesi için timeoutInMillis
kadar bir süre bekler (belirtilen openType
öğesine bağlı olarak varsayılan olmayan veya yeni olmayan).
Açık tür PREFER_NON_DEFAULT
ise varsayılan olmayan (kaydedilmiş veya ağdan alınmış) bir kapsayıcı yüklenir ve aşağıdakilerden biri gerçekleşir gerçekleşmez ContainerFuture'ın engellemesi kaldırılır:
- Kayıtlı bir kapsayıcı yüklendiğinden emin olun.
- Kayıtlı kapsayıcı yoksa, bir ağ kapsayıcısı yüklenir veya bir ağ hatası oluşur.
- zamanlayıcı sona erer.
Bir ağ hatası oluşursa veya zamanlayıcının süresi dolarsa get()
varsayılan bir kapsayıcı döndürebilir.
Açık tür PREFER_FRESH
ise yeni (kaydedilmiş veya ağdan alınmış) bir kapsayıcı yüklenir ve aşağıdakilerden biri gerçekleşir gerçekleşmez ContainerFuture'ın engellemesi kaldırılır:
- kaydedilmiş yeni bir kapsayıcı yüklenir.
- herhangi bir kayıtlı kapsayıcı yoksa veya kayıtlı kapsayıcı eskiyse, bir ağ kapsayıcısı yüklenmişse ya da bir ağ hatası oluşur.
- zamanlayıcı sona erer.
Bir ağ hatası oluşursa veya zamanlayıcının süresi dolarsa get()
varsayılan bir kapsayıcı veya
kayıtlı eski bir kapsayıcı döndürebilir.
Belirli bir containerId
ile ikinci kez openContainer
çağrısı yaparsanız get()
, ilk çağrıyla aynı kapsayıcıyı döndürecek olan bir ContainerFuture
döndürülür.
Parametreler
tagManager | OpenContainer çağrılacağı TagManager |
containerId | yüklenecek container'ın kimliği |
openType | kapsayıcının nasıl açılacağını seçme |
timeoutInMillis | kapsayıcının yüklenmesi için beklenecek maksimum milisaniye sayısı (kayıtlı mağazadan). Null ise DEFAULT_TIMEOUT_IN_MILLIS kullanılır. |
İlerlemeler
- get yöntemi container'ı döndürecek ancak container kullanılabilir olana kadar zaman aşımıInMillis değerine kadar engel oluşturabilecek bir nesnedir.
herkese açık static void openContainer (TagManager tagManager, String tagManager, ContainerOpener.OpenType tagManager tagManagerContainerOpener.Notifier
Bir kapsayıcının yüklenmesi için timeoutInMillis
kadar bir süre bekler (belirtilen openType
öğesine bağlı olarak varsayılan olmayan veya yeni olmayan).
Açık tür PREFER_NON_DEFAULT
ise varsayılan olmayan (kaydedilmiş veya ağdan alınmış) bir kapsayıcı yüklenir ve bilgilendiriciye aktarılır. Bildirimci, aşağıdakilerden biri gerçekleşir gerçekleşmez çağrılır:
- Kayıtlı bir kapsayıcı yüklendiğinden emin olun.
- Kayıtlı kapsayıcı yoksa, bir ağ kapsayıcısı yüklenir veya bir ağ hatası oluşur.
- zamanlayıcı sona erer.
Bir ağ hatası oluşursa veya zamanlayıcının süresi dolarsa containerAvailable(Container)
içine geçirilen kapsayıcı, varsayılan kapsayıcı olur.
Açık tür PREFER_FRESH
ise yeni (kaydedilmiş veya ağdan alınmış) bir kapsayıcı yüklenir ve bilgilendiriciye aktarılır. Bildirimci, aşağıdakilerden biri gerçekleşir gerçekleşmez çağrılır:
- kaydedilmiş yeni bir kapsayıcı yüklenir.
- herhangi bir kayıtlı kapsayıcı yoksa veya kayıtlı kapsayıcı eskiyse, bir ağ kapsayıcısı yüklenmişse veya bir ağ hatası oluşur.
- zamanlayıcı sona erer.
Bir ağ hatası oluşursa veya zamanlayıcının süresi dolarsa containerAvailable(Container)
içine geçirilen kapsayıcı, varsayılan veya eski bir kapsayıcı olabilir.
Belirli bir containerId
ile ikinci kez openContainer(TagManager, String, ContainerOpener.OpenType, Long)
çağrısı yaparsanız önceki çağrıdan döndürülen kapsayıcı, kullanılabilir olduğu anda bilgilendiriciye iletilir.
Parametreler
tagManager | OpenContainer çağrılacağı TagManager |
containerId | yüklenecek container'ın kimliği |
openType | kapsayıcının nasıl açılacağını seçme |
timeoutInMillis | kapsayıcının yüklenmesi için beklenecek maksimum milisaniye sayısı (kayıtlı mağazadan ve/veya ağdan). Null ise DEFAULT_TIMEOUT_IN_MILLIS kullanılır. |
bilgilendirici | kapsayıcı kullanılabilir olduğunda çağrılacak bir bilgilendirici. Varsa kayıtlı kapsayıcı veya ağ kapsayıcısıyla çağrılır ve zaman aşımından önce yüklenir. Aksi takdirde varsayılan kapsayıcıyla çağrılır. Bildirimci farklı bir iş parçacığından çağrılabilir. |