Activity sınıfından türettiğimiz her bir nesne, uygulamalarımızı geliştirirken tasarladığımız kullanıcı arayüzlerini yani sayfaları temsil etmektedir. Oluşturduğumuz her bir sayfanın kullanıcı ile gerçekleştirdiği etkileşimler Activity sınıfı sayesinde gerçekleştirilir. Oluşturacağımız her bir activity bir arayüzünden sorumludur ve mutlaka AndroidManifest.xml dosyasında tanımlanması gerekmektedir. Tanımlanmadığı taktirde activity ile karşılaşılan ilk anda uygulamanın yürütümü sonlandırılır.
Activity Yaşam Döngüsü
- onCreate() Bir activity oluşturulup, çalışmaya başlamasının ardından tetiklenecek olan ilk metotdur. Eğer finish() metodu aracılığı ile veya başka bir nedenden dolayı silinmediği sürece yaşam döngüsü boyunca bir kere çalışır.
- Ardından sırasıyla onStart() ve onResume() metotları çalıştırılır. onStart(), onCreate()’den hemen sonra arayüz elemanları oluşturulduktan sonra çağırılır. onResume() ile de artık kullanıcı ile etkileşime geçilmiştir. Activity çalıştırılmadan önce çalışan son metotdur. Eğer uygulama içerisinde başka bir ekrana geçiş yapılıp o activity durdurulursa, geri dönüldüğünde activity onResume() ile tetiklenerek devam eder.
- Eğer activity kullanıcı tarafından arka plana atılırsa, sırasıyla onPause() ve onStop() metotları tetiklenir. Bu arada activity stack’de artık en önde değildir. Geri mevcut activity’e dönüldüğünde ise sırasıyla onStart() ve onResume() çalıştırılır.
- Activity kapatıldığı anda ise onPause() ve onStop() metotlarının ardından onDestroy() tetiklenerek activity yok edilir ve yaşam döngüsü biter.
Activity yaşam döngüsünde tanımlanması zorunlu olan tek metod onCreate metodudur. Eğer bir activity stack’de arkaplana atılacaksa ve biz o an bulunan verilerin kaybolmasını istemiyorsak onSaveInstanceState(Bundle bundle) ve onRestoreInstanceState(Bundle bundle) metodlarını activity içerisinde tanımlamamız gerekir.
onSaveInstanceState(): Activity arkapalana atıldığı zaman tetiklenen metoddur.
onRestoreInstanceState(): Activity bazen farklı nedenlerden dolayı işletim sistemi tarafından sonlandırılabilir. Bu durumda activity tekrar odak haline geldiğinde onStart metodundan hemen sonra tetiklenen metoddur.
Örnek:
1 | @Override |
Not: Bundle sınıfı nesneleri ile;
- putByte(String key, byte value) byte,
- putDouble(String key, double value) double,
- putString(String key, String value) String,
- putFloat(String key, float value) float,
- putLong(String key, long value) long tipinde veriler de saklayabiliriz.
Aynı şekilde okumak için de;
- getByte(String key)
- getDouble(String key)
- getString(String key)
- getFloat(String key)
- getLong(String key)
Context Sınıfı
Uygulamalardaki bileşenlerin oluşturulmasını, hem kendi aralarında hem de işletim sistemi ile bağlantı kurmasını sağlayan sınıftır. Dolayısıyla Activity’nin ata sınıfıdır.
R Sınıfı
Bazı zamanlar oluşturduğumuz sınıf içerisinde kaynak dosyalarından değer almak zorunda kalabiliyoruz. Örnek vermek gerekirse, res klasoru altında tanımladığımız bir renk kodu, uygulama adı, özel bir değişken örnek verilebilir. İşte bu değişkenlerin Java class’ları içerisinde kullanısını sağlayan R sınıfıdır. IDE tarafından otomatik olarak oluşturulur.
Arayüz Geliştirme
Kaynak Kod (XML) ile Arayüz Geliştirme
Design Penceresi ile Arayüz Geliştirme
Kaynak : Dr. Abdullah Talha KABAKUŞ (http://akademik.duzce.edu.tr/talhakabakus)
Comments