SORU
12 HAZİRAN 2009, Cuma


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
12 HAZİRAN 2009, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • Pepsi

    Pepsi

    1 Kasım 2005
  • sinumatic

    sinumatic

    19 Aralık 2006