Android - Context ve Application Kavramları

Tuğçe Aktepe
2 min readApr 19, 2020

--

Merhabalar,

Android uygulamalarımızı geliştirirken sık kullandığımız kavramları bazen tam olarak tanımlayamıyoruz. Bu yazımda elimden geldiğince bu kavramları açıklamaya çalışacağım.

Her şeyde kullanıyoruz… Nedir bu Context ?

Nedir bu Context ?

Daha net açıklanamazdı dediğim bir açıklamayı sizinle paylaşayim.

“Context, uygulamanın herhangi bir zamandaki durumunu tutan bir objedir.”

“Uygulamanin kaynaklarına erişmeyi sağlayan Android İşletim sistemi tarafından implement edilmiş bir Interface’dir. Sıklıkla uygulamanın /res klasörunde bulunan kaynaklara (stringler, resim dosyaları vs.) erişimi sağlamak icin kullanılır. Bunun dışında yeni bir Activity başlatma, Intent’leri kullanma gibi işler de Context tarafından yapılır.”

Context Android uygulamasının her şeyidir, her sınıf Context’ten türemektedir.

Context nesnesinegetApplicationContext(), getContext(), getBaseContext() metotları ya dathis ifadesi (Context sınıfından türeyen her Application, Activity, Service and IntentService sınıfları için) aracılığı ile ulaşabiliriz.

Kullanım türleri :

  • View, adapter, listener yaratırken:
TextView tv = new TextView(getContext());
ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(),...);
  • Uygulamanın resource larına erişirken:
context.getSystemService(LAYOUT_INFLATER_SERVICE)
getApplicationContext().getSharedPreferences(*name*, *mode*)

Bir de Application sınıfı var…

Application sınıfı genelde uygulama genelindeki kontroller için kullanılıyor. Ancak genelde çok sık Application sınıfından extend edilmiş sınıflara ihti olmaz. Genellikle çoğu uygulamada Application sınıfı bir tanedir.

  • İlk activity çalışmadan önce çalıştırılması gereken tasklar (güvenlik araçlarının taramalarına başlaması vs.)
  • Raporlama ve crash takip araçları (crashlytics, fabric vs.)
  • Static metotlar ve static kaynak atamaları (network client objeleri…)
  • Lifecycle yönetimi (activity lifecycle, background or foreground)

gibi işlemler Application sınıfımız içerisinde yapılır.

Burada önemli nokta memory management olayıdır. Bu sınıftaki verilerin nasıl tutulduğuna dikkat edilmelidir. Verilerin uygulama ayakta olduğu sürece kalacağı hiç bir zaman garanti değildir. Çünkü işletim sistemi bellek yetersizliği durumunda application sınıfını öldürüp yenisini yaratabilir.

→Kendi Application sınıfımızı yaratmak için öncelikle Application sınıfından türeyen bir sınıf yaratırız.

→ Daha sonra bu application sınıfını manifest dosyamıza ekleriz. Yani uygulamamız açıldığı zaman ilk olarak bu sınıf çalışacak diyoruz.

Kısaca context ve application sınıfları hakkında bilgi vermeye çalıştım. Bir sonraki yazımda görüşmek üzere :) Sağlıklı günler dilerim.

Referanslar:

https://github.com/codepath/android_guides/wiki/Understanding-the-Android-Application-Class

https://medium.com/@balakrishnanpt/android-application-class-a8a1d64c82d1

https://gelecegiyazanlar.turkcell.com.tr/soru/android-application-sinifi-nedir-nasil-kullanilir

--

--