2011-12-14 32 views
11

this answer ya da Android'in belgelerine göre, bir uygulamada Bağlamı almanın ve bunu başka bir sınıfa/yönteme/her türlü iletime iletmenin birkaç yolu vardır.İçerik almanın daha iyi yolu nedir?

Diyelim ki, Foo Etkinliğindeyim ve içeriği Bar'ın yapıcısına iletmeye ihtiyacım var.

Bar bar = new Bar(Foo.this); 
Bar bar2 = new Bar(this); //same as first i guess 
Bar bar3 = new Bar(getApplicationContext()); 
Bar bar4 = new Bar(getBaseContext()); 
Bar bar5 = new Bar(MyApp.getContext); // get context statically 

neyi tüm bu olasılıklar arasında daha iyi bir yol olabilir, hafıza sızıntıları, hız, genel performansın dikkate olacak alarak?

cevap

2

Dışarı this question kontrol etmelisiniz - ikonların sizinkiyle aynı kapsayan.

Ayrıca, Avoiding memory leaks'daki Geliştirici Belgeleri, çeşitli yöntemlerin makul olduğu bazı durumların iyi bir açıklamasını verir.

0

Sorunuza doğrudan bir yanıt vermedim.Ama Foo.this'i karşılaştırırsanız ve bu bazen ilkini bazen (yuvalanmış sınıf durumunda) ikinci bir hata gösterecektir. o linke

Using Application context everywhere? geçmesi konusunda daha fazla tartışma için

.

Size yardımcı olacağını umuyorum

İlgili konular