Android Programlama | Activity Yaşam Döngüsü

deltaturk

Moderatör
26 Kas 2020
510
498
Green Team Mersin Daire Bşk.

Android Programlama | Activity Yaşam Döngüsü


Selam Dostlar, Arayüz Elemanları konusundan sonra Android Programlamaya tam anlamıyla giriş yapıyoruz.
Yazacağımız kodlar artacak ve daha çok işlevsellikler göreceğiz.
Acitivty Yaşam Döngüsü tam anlamıyla programlamanın yapı taşıdır yani buna birnevi algoritma diyebiliriz.



Activity Nedir ?


Activity, Uygulamamamızın ön planında olan sayfa yapısı olarak adlandırabiliriz.
Bir Activity Oluşturduğumuzda .java uzantısı halinde karşımıza çıkar.



Activity Nasıl Oluşturulur ?


File >> New >> Activity >> Empty Activity
Bu yolu takip ederek bir Activity oluşturabiliriz.



Activity Yaşam Döngüsü


Her Activity'nin kendine has yaşam döngüsü vardır
Bu yaşam döngüleri 7 Tane method barındırır

  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onDestroy()
  7. onRestart()

Bunların nereye yazıldığı önemli değildir önemli olan kısım Activity'nin çalışma durumuna gerçekleşirler.
Yaşam döngüsündeki 7 methodun görevlerini öğrenelim ve örnekler ile pekiştirelim.

  1. onCreate() methodu başlar, Activity başlatıldığında çalışan method.
  2. onStart() methodu ile Activity artık kullanıcı tarafından görünür yani visible duruma göre gelir bu method sayesinde kullanıcı uygulama ile etkileşim içindedir.
  3. onPause() Kullanıcıdan herhangi bir girdi alamaz ve hiçbir kod çalıştırılamaz.
  4. onStop() Bu method ile artık activity görünür durumda değildir yani ya başka bir activity çalıştırılmıştır ya da uygulama arka plandadır.
  5. onDestroy() Activity sistem tarafından yok edilmeden yani uygulama kapatılmadan önce çalışan methodtur.
  6. onRestart() bu method ise activity durdurulduktan sonra tekrar başlatılmak için bu method kullanılır yani başka bir activity'ye girdik tekrar bu activity'ye girdiğimizde method çalışır.


Uygulamalı Anlatım


Loglar basarak çıkışlar yapacağımız için bu çıkışları mobil ekranda göremeyiz loglar ile takip edebiliriz bundan dolayı LOG ekranında activity yaşam döngülerinin hangi evrede devreye girdiğini gözlemleyelim.

onCreate() methodu activty ilk oluşturulduğunda otomatik olarak eklenir.
Java:
@Override
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);
}


onStart() Methodu Oluşturalım
Java:
@Override
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);}



onResume() Methodu Oluşturalım
Java:
@Override
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);
}


onPause() Methodu Oluşturalım
Java:
@Override
protected void onPause() { 
super.onPause();
}


onRestart() Methodu Oluşturalım
Java:
@Override
protected void onRestart() { 
super.onRestart();
}


onDestroy() Methodu Oluşturalım
Java:
@Override
protected void onDestroy() { 
super.onDestroy();
}


onStop() Methodu Oluşturalım
Java:
@Override
protected void onStop() { 
super.onStop();
}




Not : onStart() methodunu resime ekleyememişim aynı mantık ile ekleyebilirsiniz
Bir Activity oluşturduğumuzda onu MANİFESTS dosyasının içine tanımlamamız gerekir
Yeni bir Activity oluşturulduğunda MANİFESTS dosyasının içine dahil edilecektir eğer dahil edilmeyen bir activity varsa bu Activitylere geçiş sırasında uygulama çalışmaz hata verir veya uygulama durur.


Activity Oluşturalım





File >> New >> Activity >> Empty Activity
Acitivtymiz Oluşturuldu Ve MANIFESTS Dosyamıza Otomatik Olarak Tanımlandı






Activity Yaşam Döngüsünü Kodlama


Loglar ile takip edeceğimiz için önce LOG basıyoruz
Loglarla takip yapmak çok önemlidir zaten proje geliştirdiğimizde LOG'larla takip edeceksiniz.


onStart() Methodu içine;
Java:
@Override
protected void onStart() { 
super.onStart(); 
Log.i("Takip" , "OnStart Methodu Çalıştı");
}


onCreate() Methodu İçine;
Java:
@Override
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
Log.i("Takip","OnCreate Methodu Çalıştı");
}

Bu İşlemleri Tüm Methodlara Uyguluyoruz !


Java:
public class MainActivity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) {     
super.onCreate(savedInstanceState);     
setContentView(R.layout.activity_main);     
Log.i("Takip","OnCreate Methodu Çalıştı");    } 
@Override 
protected void onStart() {     
super.onStart();     
Log.i("Takip" , "OnStart Methodu Çalıştı");    } 
@Override    protected void onResume() {     
super.onResume();     
Log.i("Takip","OnResume Methodu Çalıştı");    } 
@Override    protected void onPause() {     
super.onPause();     
Log.i("Takip","OnPause Methodu Çalıştı");    } 
@Override    protected void onRestart() {     
super.onRestart();     
Log.i("Takip","OnRestart Methodu Çalıştı");    } 
@Override    protected void onDestroy() {     
super.onDestroy();     
Log.i("Takip","OnDestroy Methodu Çalıştı");    } 
@Override    protected void onStop() {     
super.onStop();     
Log.i("Takip", "OnStop Methodu Çalıştı");    }
}




LOG Basma işlemimiz de tamam.
Peki LOG'ları nasıl göreceğiz derseniz öncelikle uygulamamızı çalıştırıyoruz sonrasında AndroidStudio'nun altındaki LOGCAT butonuna tıklıyoruz.
LOGCAT'i açtığımızda karşımızda birden fazla log gelecek, bu logları filtrelememiz gerekiyor.






Resimde'de gördüğünüz gibi 3 Method'da çalıştı
İlk olarak onCreate Methodu ondan sonra onStart Ve onResume.
Şimdi'de uygulamamızı alt tarafa alalım ve çıkan methodları görelim.






İlk olarak uygulamamız durdu yani onPause methodu çalıştı daha sonra onStop methodumuz çalıştı yani uygulama aktif halde değil veya görünür halde değil.

Şimdi tekrar uygulamamıza tıklayalım ve karşımıza çıkacak olan methodlara bir bakalım dostlar.
onRestart methodu ilk olarak çalıştı yani uygulamamızı tekrar başlattık yani acitivty görünür hale geldi ve kullanıcı ile iletişim yapabilir halde peki neden onCreate methodu çalışmadı derseniz, onCreate methodu Acitivty oluşturulduğunda çalışır.
onStart methodu çalıştı
onResume Çalıştı






Uygulamamızı kapatıp tekrar açalım.

2022-09-17 00:14:35.125 14066-14066/com.example.myapplication I/Takip: OnCreate Methodu Çalıştı
2022-09-17 00:14:35.156 14066-14066/com.example.myapplication I/Takip: OnStart Methodu Çalıştı
2022-09-17 00:14:35.163 14066-14066/com.example.myapplication I/Takip: OnResume Methodu Çalıştı

Bu şekilde bir çıktı aldık yani Activity tekrardan oluşturuldu yani kullanıcı ile uygulama karşılıklı olarak iletişim kurabilir hale gelmiş durumda.



Neler Öğrendik ?


Activity Yaşam Döngüsü Nedir
Activity Yaşam Döngüsünün Methodları
Activity Yaşam Döngüsü Sıralaması
Activity Oluşturma
Activity Yaşam Döngüsü Methodları Oluşturma
Log Basma
Örnek Uygulamalar İle Methodların İşleyişi




Activity Yaşam Döngüsü Konumuz Bukadardı.
Bir Sonraki Konumuz Intent Kavramı Ve Activityler Arası Geçiş Olacak Dostlar...

Okuduğunuz İçin Teşekkür Ederim Herkese İyi Forumlar :)
 

JohnWick51

Uzman üye
20 Mar 2022
1,351
583

Android Programlama | Activity Yaşam Döngüsü


Selam Dostlar, Arayüz Elemanları konusundan sonra Android Programlamaya tam anlamıyla giriş yapıyoruz.
Yazacağımız kodlar artacak ve daha çok işlevsellikler göreceğiz.
Acitivty Yaşam Döngüsü tam anlamıyla programlamanın yapı taşıdır yani buna birnevi algoritma diyebiliriz.



Activity Nedir ?


Activity, Uygulamamamızın ön planında olan sayfa yapısı olarak adlandırabiliriz.
Bir Activity Oluşturduğumuzda .java uzantısı halinde karşımıza çıkar.



Activity Nasıl Oluşturulur ?


File >> New >> Activity >> Empty Activity
Bu yolu takip ederek bir Activity oluşturabiliriz.



Activity Yaşam Döngüsü


Her Activity'nin kendine has yaşam döngüsü vardır
Bu yaşam döngüleri 7 Tane method barındırır

  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onDestroy()
  7. onRestart()

Bunların nereye yazıldığı önemli değildir önemli olan kısım Activity'nin çalışma durumuna gerçekleşirler.
Yaşam döngüsündeki 7 methodun görevlerini öğrenelim ve örnekler ile pekiştirelim.

  1. onCreate() methodu başlar, Activity başlatıldığında çalışan method.
  2. onStart() methodu ile Activity artık kullanıcı tarafından görünür yani visible duruma göre gelir bu method sayesinde kullanıcı uygulama ile etkileşim içindedir.
  3. onPause() Kullanıcıdan herhangi bir girdi alamaz ve hiçbir kod çalıştırılamaz.
  4. onStop() Bu method ile artık activity görünür durumda değildir yani ya başka bir activity çalıştırılmıştır ya da uygulama arka plandadır.
  5. onDestroy() Activity sistem tarafından yok edilmeden yani uygulama kapatılmadan önce çalışan methodtur.
  6. onRestart() bu method ise activity durdurulduktan sonra tekrar başlatılmak için bu method kullanılır yani başka bir activity'ye girdik tekrar bu activity'ye girdiğimizde method çalışır.


Uygulamalı Anlatım


Loglar basarak çıkışlar yapacağımız için bu çıkışları mobil ekranda göremeyiz loglar ile takip edebiliriz bundan dolayı LOG ekranında activity yaşam döngülerinin hangi evrede devreye girdiğini gözlemleyelim.

onCreate() methodu activty ilk oluşturulduğunda otomatik olarak eklenir.
Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


onStart() Methodu Oluşturalım
Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);}



onResume() Methodu Oluşturalım
Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


onPause() Methodu Oluşturalım
Java:
@Override
protected void onPause() {
super.onPause();
}


onRestart() Methodu Oluşturalım
Java:
@Override
protected void onRestart() {
super.onRestart();
}


onDestroy() Methodu Oluşturalım
Java:
@Override
protected void onDestroy() {
super.onDestroy();
}


onStop() Methodu Oluşturalım
Java:
@Override
protected void onStop() {
super.onStop();
}




Not : onStart() methodunu resime ekleyememişim aynı mantık ile ekleyebilirsiniz
Bir Activity oluşturduğumuzda onu MANİFESTS dosyasının içine tanımlamamız gerekir
Yeni bir Activity oluşturulduğunda MANİFESTS dosyasının içine dahil edilecektir eğer dahil edilmeyen bir activity varsa bu Activitylere geçiş sırasında uygulama çalışmaz hata verir veya uygulama durur.


Activity Oluşturalım





File >> New >> Activity >> Empty Activity
Acitivtymiz Oluşturuldu Ve MANIFESTS Dosyamıza Otomatik Olarak Tanımlandı






Activity Yaşam Döngüsünü Kodlama


Loglar ile takip edeceğimiz için önce LOG basıyoruz
Loglarla takip yapmak çok önemlidir zaten proje geliştirdiğimizde LOG'larla takip edeceksiniz.


onStart() Methodu içine;
Java:
@Override
protected void onStart() {
super.onStart();
Log.i("Takip" , "OnStart Methodu Çalıştı");
}


onCreate() Methodu İçine;
Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("Takip","OnCreate Methodu Çalıştı");
}

Bu İşlemleri Tüm Methodlara Uyguluyoruz !


Java:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {    
super.onCreate(savedInstanceState);    
setContentView(R.layout.activity_main);    
Log.i("Takip","OnCreate Methodu Çalıştı");    }
@Override
protected void onStart() {    
super.onStart();    
Log.i("Takip" , "OnStart Methodu Çalıştı");    }
@Override    protected void onResume() {    
super.onResume();    
Log.i("Takip","OnResume Methodu Çalıştı");    }
@Override    protected void onPause() {    
super.onPause();    
Log.i("Takip","OnPause Methodu Çalıştı");    }
@Override    protected void onRestart() {    
super.onRestart();    
Log.i("Takip","OnRestart Methodu Çalıştı");    }
@Override    protected void onDestroy() {    
super.onDestroy();    
Log.i("Takip","OnDestroy Methodu Çalıştı");    }
@Override    protected void onStop() {    
super.onStop();    
Log.i("Takip", "OnStop Methodu Çalıştı");    }
}




LOG Basma işlemimiz de tamam.
Peki LOG'ları nasıl göreceğiz derseniz öncelikle uygulamamızı çalıştırıyoruz sonrasında AndroidStudio'nun altındaki LOGCAT butonuna tıklıyoruz.
LOGCAT'i açtığımızda karşımızda birden fazla log gelecek, bu logları filtrelememiz gerekiyor.






Resimde'de gördüğünüz gibi 3 Method'da çalıştı
İlk olarak onCreate Methodu ondan sonra onStart Ve onResume.
Şimdi'de uygulamamızı alt tarafa alalım ve çıkan methodları görelim.






İlk olarak uygulamamız durdu yani onPause methodu çalıştı daha sonra onStop methodumuz çalıştı yani uygulama aktif halde değil veya görünür halde değil.

Şimdi tekrar uygulamamıza tıklayalım ve karşımıza çıkacak olan methodlara bir bakalım dostlar.
onRestart methodu ilk olarak çalıştı yani uygulamamızı tekrar başlattık yani acitivty görünür hale geldi ve kullanıcı ile iletişim yapabilir halde peki neden onCreate methodu çalışmadı derseniz, onCreate methodu Acitivty oluşturulduğunda çalışır.
onStart methodu çalıştı
onResume Çalıştı






Uygulamamızı kapatıp tekrar açalım.

2022-09-17 00:14:35.125 14066-14066/com.example.myapplication I/Takip: OnCreate Methodu Çalıştı
2022-09-17 00:14:35.156 14066-14066/com.example.myapplication I/Takip: OnStart Methodu Çalıştı
2022-09-17 00:14:35.163 14066-14066/com.example.myapplication I/Takip: OnResume Methodu Çalıştı

Bu şekilde bir çıktı aldık yani Activity tekrardan oluşturuldu yani kullanıcı ile uygulama karşılıklı olarak iletişim kurabilir hale gelmiş durumda.



Neler Öğrendik ?


Activity Yaşam Döngüsü Nedir
Activity Yaşam Döngüsünün Methodları
Activity Yaşam Döngüsü Sıralaması
Activity Oluşturma
Activity Yaşam Döngüsü Methodları Oluşturma
Log Basma
Örnek Uygulamalar İle Methodların İşleyişi




Activity Yaşam Döngüsü Konumuz Bukadardı.
Bir Sonraki Konumuz Intent Kavramı Ve Activityler Arası Geçiş Olacak Dostlar...

Okuduğunuz İçin Teşekkür Ederim Herkese İyi Forumlar :)
Ellerine saglik
 

deltaturk

Moderatör
26 Kas 2020
510
498
Green Team Mersin Daire Bşk.
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.