Bence SDK sitesinde kötü belgelenmiş bir sürü şey var, bu onlardan biri. Yapacağım iddia, bir uygulama bağlamını varsayılan olarak kullanmanın ve yalnızca gerçekten ihtiyacınız olduğunda bir aktivite bağlamını kullanmanın daha iyi gibi görünmesi. Bir etkinlik bağlamına ihtiyacınız olduğunu gördüğüm tek yer bir ilerleme iletişim kutusu içindir. SBERG412, bir tost mesajı için bir etkinlik bağlamı kullanmanız gerektiğini iddia ediyor, ancak Android dokümanları, kullanılan bir uygulama bağlamını açıkça gösteriyor. Bu Google örneği nedeniyle her zaman tostlar için uygulama bağlamı kullandım. Bunu yapmak yanlışsa, Google topu buraya bıraktı.
Düşünmek ve gözden geçirmek için daha fazlası:
Bir tost mesajı için, Google Geliştirici Kılavuzu uygulama içeriğini kullanır ve açıkça şunu kullanır:
belirtir Tost Bildirimleri
Geliştirici kılavuzunun iletişim kutuları bölümünde, bir AlertDialog.Builder uygulamasının uygulama bağlamını kullandığını ve ardından ilerleme çubuğunun bir etkinlik bağlamı kullandığını görürsünüz. Bu, Google tarafından açıklanmamıştır.
İletişim Kutuları
Uygulama bağlamını kullanmanın iyi bir nedeni, bir yönlendirme değişikliği gibi yapılandırma değişikliklerini işlemek istediğiniz ve Görünümler gibi bir içeriğe ihtiyaç duyan nesneleri korumak istediğinizdir. Buraya bakarsanız: Çalışma Süresi Değişiklikleri
Bir etkinlik içeriği kullanma konusunda sızıntı oluşturabilecek bir uyarı vardır. Bu, korunacak görüşlere sahip bir uygulama bağlamıyla önlenebilir (en azından benim anlayışım budur). Yazdığım bir uygulamada, bir uygulama bağlamı kullanmayı planlıyorum çünkü bir yönelim değişikliğindeki bazı görünümleri ve diğer şeyleri tutmaya çalışıyorum ve yine de aktivitenin yönlendirme değişikliklerinde yok olmasını ve yeniden oluşturulmasını istiyorum. Böylece (bkz bir bellek sızıntısına neden olmayan bir uygulama bağlamında kullanmak zorunda bellek sızıntısı önleme ). Bana göre, bir etkinlik bağlamı yerine uygulama bağlamını kullanmak için birçok iyi neden var gibi görünüyor ve bana göre neredeyse bir aktivite bağlamından daha sık kullanacaksınız gibi görünüyor. Yaşadığım birçok Android kitabının yaptığı şey bu ve gördüğüm Google örneklerinin çoğunun yaptığı da bu.
Google dokümantasyonu, uygulama bağlamının kullanılmasının çoğu durumda mükemmel derecede iyi görünmesini sağlar ve aslında örneklerinde bir etkinlik bağlamı kullanmaktan daha sık görülür (en azından gördüğüm örnekler). Uygulama bağlamını kullanmak gerçekten böyle bir sorunsa, Google'ın buna daha fazla önem vermesi gerekir. Açıklığa kavuşturmaları gerekiyor ve örneklerinden bazılarını tekrarlamaları gerekiyor. Yetki (Google) gerçekten uygulama bağlamlarını kullanmak bir sorun değil gibi görünmesini sağladığı için bunu tamamen deneyimsiz geliştiriciler için suçlamam.