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

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • SRI International

    SRI Internat

    30 NİSAN 2008
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009