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

  • AndroidSale

    AndroidSale

    17 NİSAN 2011
  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006