getApplication kullanmaya ne zaman fark(), getApplicationContext(), getBaseContext() ve someClass.bu
Ben yeni android ve deniyorum anlamak arasındaki fark getApplication()
, getApplicationContext(
), getBaseContext()
, getContext()
ve someClass.this
ve özellikle de kullanılabilecek bu yöntemler aşağıdaki kod satırları:
Ben bunlar arasındaki fark nedir ve ben durumlarda bunları kullanmak bir tost başlatmak?
Toast.makeText(LoginActivity.this, "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplication(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getBaseContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
aynı niyet:
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
Intent intent = new Intent(MenuPagina., LoginActivity.class);
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
Intent intent = new Intent(getApplication(), LoginActivity.class);
CEVAP
TostveNiyether iki başvuru gerektirirbağlam. VegetApplication,getApplicationContext,LoginActivity.buvegetBaseContexthepsi bağlama referans sunuyoruz.
Şimdi şey karıştırır farklı ortamlarda ve kendi özel kullanım ilanı. Daha basit Android bağlam çerçevesinde mevcut iki tür saymalısın.
- Uygulama Kapsamında
- Etkinlik Kapsamında
Uygulamabağlam uygulamanın yaşam döngüsü bağlı ve her zaman uygulama ömrü boyunca aynı olacaktır. Eğer kullanıyorsanızTostbir kadeh uygulama ile her yerden yükseltilmiş olabilir , çünkü uygulama kapsamında ya da etkinlik kapsamında hem bile kullanabilirsiniz ve bir pencereye bağlı değildir.
Faaliyetbağlam Aktivite yaşam döngüsünü bağlı ve etkinliği onDestroy()
yükseltilmiş ise yok edilebilir. Eğer yeni bir aktivite başlatmak istiyorsanız, etkinlik kapsamında kullanmanız gerekirNiyetyeni fırlatma aktivitesi mevcut faaliyet (aktivite açısından yığın) bağlı. Ancak, uygulamanın bağlam da yeni bir faaliyet başlatmak için kullanabilirsiniz ama o zaman niyet Intent.FLAG_ACTIVITY_NEW_TASK
yeni bir görev olarak ele almaya bayrak ayarlamanız gerekir.
Şimdi durumlar için yönlendirme:
LoginActivity.this
rağmen Faaliyet sınıfı ama base sınıfını genişleten kendi sınıfına atıfta onun (Aktivite) de Bağlam sınıfı genişletir, etkinlik kapsamında sunmak için kullanılabilir.
getApplication()
ama Uygulama için başvuran, ancak Uygulama sınıfı Kapsamında sınıf uzanır, uygulama içeriği sunmak için kullanılan nesne.
getApplicationContext()
uygulama kapsamında bulunmaktadır.
getBaseContext()
faaliyet kapsamında bulunmaktadır.
İpuçları: işlemek için gereken Zaman
Views
gittin Etkinlik KapsamındabaşkaUygulama-İçerikyeterli olacaktır.
GetContext arasındaki fark() , getAppl...
() getApplicationContext, getBaseConte...
Kullanma zamanı .Kullanmaya ilk ne zam...
Kullanmaya ne Zaman?dizi karşı Liste&l...
'DateTime, zaman Damgası, Zaman v...