Uygulama bağlamı kullanarak her yerde?
Bir Android uygulaması, aşağıdaki yaklaşım ile yanlış bir şey
public class MyApp extends android.app.Application {
private static MyApp instance;
public MyApp() {
instance = this;
}
public static Context getContext() {
return instance;
}
}
ve bu bağlamda (ve tabii ki sızıntı) gerekli olduğu her yerde (örneğin SQLiteOpenHelper) pass?
CEVAP
Bu yaklaşım, potansiyel sorunların bir çift vardır, koşullar (Örneğin sizin gibi) çok iyi çalışır rağmen.
Belirli bir Bağlam gerektirir GUI ile ilgili bir şey ile uğraşırken dikkatli olmalısınız. LayoutInflater
içine uygulama Kapsamında iletirseniz örneğin, bir özel Durum alırsınız. Genel olarak konuşursak, yaklaşımın mükemmel: iyi uygulama için bir Etkinlik Kapsamında Etkinlik ve Uygulama Kapsamında zaman geçirmeden bir bağlam ötesinde kapsamında bir Faaliyet için avoid memory leaks.
Ayrıca, sizin model için bir alternatif olarak Bağlam nesnesi (bir Aktivite gibi) getApplicationContext()
arama kısayol Uygulama İçeriği almak için kullanabilirsiniz.
En iyi uygulama NSLocalizedString kull...
Web kaçının.çocuk web config miras uyg...
Android Uygulama sınıfı veri gerçekleş...
Ne'en iyi uygulama ayarları kulla...
Uygulama havuzu kimliğini kullanarak b...