Activity Sınıfı ve Activity Yaşam Döngüsü :MobileCoder I MobileCoder.NET I Mobil Programlama I Android Programlama I Mobil Geliştiricilerin Buluşma Noktası I www.MobileCoder.Net

Activity Sınıfı ve Activity Yaşam Döngüsü

02.04.2015 tarihinde Android Programlama kategorisine eklenmiş, 321 views Kişi Okumuş ve 0 Yorum Yapılmış.

Herkese merhaba bugün sizlere android’ in temel  konusundan Activity’lerden bahsetmeğe çalışacağım. Activity konusunun iyi anlaşılması gerekiyor aksi takdirde diğer konuların anlaşılmasında sıkıntı yaşanabilir.

Konuya başlamadan önce Activity kavramıyla ilgili kısa bir giriş yapmakta fayda görüyorum.

Activity sınıfı tarafından oluşturulan nesneler uygulama içinde kullanılan ekranları temsil ederler. Yani telefonumuzdaki her bir ekran bir Activity’i temsil ediyor. Bu cümleyi birkaç görsel ile pekiştirirsek daha iyi anlaşılacağını düşünüyorum.(Şekil A ve B)

Activity Manager (Activity Yöneticisi) kavramına değinecek olursak da şöyle tanımlayabiliriz; (Şekil C)

Bildiğiniz gibi telefonunuz, bilgisayarınız kadar gelişmiş bir işlemciye ya da geniş bir belleğe sahip değildir. Bu da kaynakların ve uygulamaların dikkatli şekilde kullanılmasını gerektirir. Kimse telefonunda bir uygulamayı başlatıp başka birine geçiş yaptığında, ekranın donup kalmasını istemez. İşte tam da burada Activity Manager dediğimiz yani Activity yöneticisi işin içine girer yani uygulamanızın ne zaman çalıştırılıp ne zaman durdurulacağını belirler.

Kısaca Activity Manager dediğmiz olay telefonumuzun çalışmasını optimize etmek için geliştirilmiştir. Daha yalın bir ifadeyle işletim sistemi kaynaklarının yetersiz kaldığı durumlarda uygulamanızı uyarıda bulunmadan kapatabilir (kill) ya da çalışmasını durdurabilir (stop/pause).

flow

Şekil A

 

 

Activity-Component-of-Android

Şekil B

 

Görsellerde de görüldüğü gibi her bir ekran yeni bir Activity’i temsil ediyor. Umarım şimdi daha iyi anlaşılmıştır.

Konumuza devam edelim;

Uygulamanızı kodlamaya başladığınızda ilk olarak bir ekran oluşturmak isteyeceksiniz. Önceden de belirttiğimiz gibi Activity sınıfları oluşturmak istediğiniz ekranlara karşılık gelen sınıflardır. Aktivitelerin çalışabilmesi için öncelikle Andorid Manifest dosyası içerisinde bu sınıfları tanımlamanız gerekmektedir. Bu işlemi aşağıdaki gibi gerçekleştiriyoruz.

<activity

     android:name=”net.mobilecoder.android.MainActivity”

     android:label=”@string/app_name” >

     <intent-filter>

           <action android:name=”android.intent.action.MAIN” />

           <category android:name=”android.intent.category.LAUNCHER” />

     </intent-filter>

</activity>

Yukarıda tanımlanan MainActivity isimli sınıf, LAUNCHER olarak tanımlandığı için uygulama ilk açıldığında karşınıza bu sınıf çıkacaktır. Gördüğünüz gibi intent-filter tagı içerisinde yer alan kısım bu işlemi gerçekleştirmek için yazılmıştır. Bu kısmı diğer sınıflar için tanımlamamalısınız.

Buraya dikkat edelim!!      

Eğer Aktivitenizi Android Manifest içerisinde tanımlamazsanız uygulamanız hata verecektir.

Activity sınıfını daha iyi anlamak için bu sınıfın yaşam döngüsüne bakalım.

yasamdon

Şekil C

Gördüğünüz gibi aktivite başlatıldığında ilk çalısan metod onCreate (Bundle) metodudur. Bu metod içerisinde ilk olarak setContentView() metodunu kullanarak sınıfınızın tasarımını belirtmeniz gerekmektedir. Tasarımlarda hazırlamış olduğunuz kaynakları(textview, label, button vs.) kullanmak için R.java sınıfı içerisinde oluşturulan id’leri kullanmanız gerekiyor. Kaynaklara erişim yapabilmek için bu id’leri findViewById() metoduna parametre olarak vermeniz gerekmektedir. Ayrıca kaynaklara kazandırmak istediğiniz işlevsellikleri de bu kısımda tanımlamalısınız Örneğin, bir butona tıkladığınızda arka plan renginin değişmesini istiyorsanız, bu işlemi onCreate metodu içerisinde gerçekleştirmelisiniz. Örnek olarak aşağıdaki kodu inceleyebilirsiniz.

@Override

 protected void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     setContentView(R.layout.activity_main);                             

     TextView textView = (TextView)findViewById(R.id.textView1);

}                             

Yaşam döngüsündeki metotlar şu şekildedir;

  • onCreateYukarıda bahsettiğimiz gibi aktivite başlatıldığında çağrılan metottur.
  • onStart :  onCreate metodu çalışıp tasarım ekranda gözüktükten sonra çalışır.
  • onResume :  Aktivite çalışır hale gelmeden önceki son metottur. Eğer aktivite pasif hale getirilmişse tekrar aktif hale geldiğinde bu metot çağrılır ve sonrasında aktivite çalışır.
  • onPause :  Aktivite arka plana atılacağında bu metot çağrılır. Bu metot çalıştırıldıktan sonra diğer aktivitelere geçiş olur.
  • onStop :  Aktivite arka plana atıldığında çalışan bir diğer metottur. Yukarıda da görüldüğü gibi burada iki durum söz konusudur. Birincisi, kullanıcının tekrar bu aktiviteye dönmesidir. Bu durumda onRestart metodu çalışır ve onStart metodundan itibaren aktivite tekrar çalışır. İkinci durum, kullanıcının aktiviteye tekrar dönmemesidir. Bu durumda ise onDestroy metodu çağırılır.
  • onDestroyAktivite sonlandırılır ve aktiviteye ait bütün kaynaklar RAM’ den kaldırılır. Böylece yaşam döngüsü tamamlanmış olur.

Yukarıdaki metotlar bir Aktivity’nin yaşamını kontrol etmemize yardımcı olur. Özellikle kullanıcı bir ayarı kaydediyorsa ya da oyun oynuyorsa ve bu sırada bir telefon konuşması başlayacaksa anlık durumları kaydetmemiz için bu metotların çalışma esaslarını bilmeliyiz.

Herhangi bir ekranın Activity sınıfı tarafından oluşturulması yeterlidir. Ancak bunun yanında Android işletim sistemi, sık kullanılan ekranlara özel Activity sınıfları sağlar. Bunlara göz atarsak;

  • ListActivity :Bir veritabanındaki veriyi listelemek ya da sunucudan gelen veriyi kullanıcıya göstermek,    uygulamalarda oldukça sık rastlanan işlemlerdir. Bunun için Android işletim sistemi bize ListActivity sınıfını sunar. Standart bir layout dosyasından oluşturulan bu ekran sayesinde elimizdeki veriyi oldukça rahat bir şekilde görüntüleyebiliriz.
  • MapActivity: Harita uygulamaları için sık kullanılan bir Activity  Google Maps haritaları üzerinde işlem yapacağımız bir uygulamamız varsa bu Activity bize yardımcı olacaktır.
  • PreferenceActivity:Android işletim sistemine benzer bir kullanıcı ayar menüsü yapmayı hedefliyorsak, PreferenceActivity’ den faydalanabiliriz. PreferenceActivity layout dosyasında vereceğimiz yapıya göre sunulan seçenekleri alt kategorilerle ekrana getirir. Aynı zamanda kullanıcının saklayacağı değerleri, her değere özel bir anahtar atayarak (key – value) bellekte otomatik olarak saklar.

Bu dersimizde Activity nedir, Activity sınıfları, Activity Manager(Activity yöneticisi) görevi ve Activity Yaşam Döngüsü konularını yalın bir dille ele almaya çalıştık. Umarım faydalı olur. Başarılar dilerim  🙂

 

Oğuz Efe YELESTEPE

 

İlgili Terimler : ,
Yazar Hakkında

Yazar : Kadriye Kundakci

Yazar Hakkında :

Yazarın Tüm Yazıları İçin Tıklayınız

Yorumlar

Sitemizde En Çok Okunan İçerikler

ANDROİD TELEFONLARA ROOT ATMA
ANDROİD TELEFONLARA ROOT ATMARoot Ne demek ? Bir android cihazı root etmek telefonun
fragment
ANDROİD FRAGMENT YAPISI VE KULLANIMIFragmentler Activity içerisinde yer alan kullanıcı ara yüzleridir. Fragment
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞME
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞMEANDROİD TELEFONLARDA KONFERANS GÖRÜŞME   Konferans görüşme çok fazla bilinmeyen androidin
Asp.NET’de web servis hazırlama ve Android de kullanimi  Web Servis Nedir ? Web üzerinden HTTP protokolü ile hizmet

Sitemizde En Çok Yorumlanan İçerikler

Rating Bar Kullanımı
Rating Bar KullanımıAndroid’de yıldız şeklinde derecelendirme çubuğu olarak kullanılır. Kullanıcı sürükleme
Android Wear Emülatör Kurulumu
Android Wear Emülatör Kurulumu   Android studio da geliştireceğimiz uygulamaların kontrolunü yapmak için emülatör
Resim Galerisi Oluşturma
Resim Galerisi OluşturmaAndroid Programlama – Resim Galerisi Oluşturma Bu yazıda, bir galeri
SQLite Database Browser Kullanımı
SQLite Database Browser KullanımıSQLite Database Browser Kullanımı Merhaba arkadaşlar, Android uygulamaları geliştirirken uygulama üzerindeki

Son Yapılan Yorumlar

  • Kategoriler

  • Son Yazılar

  • Takvim

    Kasım 2017
    P S Ç P C C P
    « Kas    
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  
  • Etiketler

  • Son Yorumlar

    • Arşivler

    • Meta