Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Makale - Pratik - Android Programlama Ders 21: Activity LifeCycle – Etkileşimin (Activity) durumları

Android Programlama Ders 21: Activity LifeCycle – Etkileşimin (Activity) durumları

30 Ekim 2013 - 16:00
- Mobil, Pratik

Android Programlama Ders 21’de Etkileşimin davranışları ve durumları öğreneceğiz.

Android uygulamayı çalıştırdığımız zaman etkileşimleri (Activity) oluşturuyoruz, kapatıyoruz ve  küçültüyoruz (gizliyoruz), bu eylemleri sürekli tekrarlıyoruz. Etkileşim bu hareketleri işleterek sistem kaynaklarını daha verimli kullanılıyor. Daha ayrıntılı bilgiyi buradan okuyabilirsiniz.

Etkileşim üç durumda olabilir:

Resumed – Etkileşim ekranda görülür ve kullanıcı onunla çalışabilir. Bu durum bazen Running (Çalışıyor) olarak anılıyor.

Paused – Etkileşim odak değil, kullanıcı onunla çalışmıyor ancak onu görebiliyor.

Stopped – Durmuş etkileşim. Odaklı değil ve kullanıcı onunla bağlantı kuramaz.

Etkileşimin durumu değiştiği zaman sistem farklı metotları çalıştırır. Bu metotları kodla doldurabiliriz. Şematik olarak aşağıdaki gibi gösterebiliriz:

StatesSchema

Etkileşimi çalıştırdığında sistemin çağırdığı metotları aşağıda açıklayalım:

onCreate() – İlk etkileşim oluştururken çağrılıyor.

onStart() – Etkileşimi kullanıcıya göstermeden önce çağrılır.

onResume() – Etkileşimi aktif haline getirmeden önce çağrılır.

 onPause() – İlerideki (sonraki) etkileşimi göstermeden önce çağrılır.

onStop() – Etkileşim kullanıcıya görülmez hale geldiği zaman çağrılır.

On Destroy() – Etkileşim yok olacağı zaman önce çağrılır.

Bu metotlar bir durum değişimine neden olmuyorlar. Aksine etkileşimin durumu değişince metotların çağrılmasını tetikliyor. Böylece bir değişkenlik bildirmek için ve buna göre tepki verebiliriz. Hangi sırayla metotların çağrılması gerektiğini pratikte görelim.

Yeni bir proje oluşturalım:

  • Project name: P0020_OneActivityState
  • Build Target: Android 4.2
  • Application name: OneActivityState
  • Package name: tr.androidApp.OneActivityState
  • Create Activity: MainActivity

Layout’u değiştirmiyoruz, şu anda bizim için önemli değil. MainActivity.java’yı açıyoruz, genellikle olduğu gibi varsayılan kodu görüyoruz.

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

Şemadan onCreate metodu görüyoruz. Tekrarlıyayım; bu metot etkileşimi (Activity) oluşturmuyor. Etkileşimin oluşturması sistemin işidir. Sistem bize onCreate metoduna kendi kodumuzu yazma imkanı sunuyor. Bu imkanı kullanalım ve R.layout.main ekranı gösterelim. Şemadan kalan metotları ekleyelim ve metotları kullanarak bildirime (loglara) yazı yazdıralım.

 

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

final String TAG = “States”;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(TAG, “MainActivity: onCreate()”);
}

@Override
protected void onStart() {
super.onStart();
Log.d(TAG, “MainActivity: onStart()”);
}

@Override
protected void onResume() {
super.onResume();
Log.d(TAG, “MainActivity: onResume()”);
}

@Override
protected void onPause() {
super.onPause();
Log.d(TAG, “MainActivity: onPause()”);
}

@Override
protected void onStop() {
super.onStop();
Log.d(TAG, “MainActivity: onStop()”);
}

@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, “MainActivity: onDestroy()”);
}
}

 

Şimdi metotları çağırdığı zaman bildirimlerde (loglarda) bunu görebiliriz. Filtreyi States etiketine ayarlayalım. Bunun nasıl yapıldığını 10 derste görebilirsiniz.

LogStates

 

Kaydedelim ve uygulamayı çalıştıralım. Çalıştırdıktan sonra bildirimlere bakalım:

MainActivity: onCreate()
MainActivity: onStart()
MainActivity: onResume()

Etkileşim iki durumu (Stopped, Paused) değiştirdi ve şuanda üçüncü durumda – Resumed. Yani etkileşim oluştu (onCreate), sonra görüntüledi (onStart) ve kullanıcıyla etkileşime sunuldu (onResume).

Şimdi emülatorde Back (Geri) düğmesine basalım. Etkileşim kapandı. Bildirime bakalım:

MainActivity: onPause()
MainActivity: onStop()
MainActivity: onDestroy()

Etkileşim geri oluşturma gerçekleştiriyor. İlk odaklamayı (onPause) kaybediyor, sonra ekrandan kayboluyor (onStop) ve sonraki adımda yok oluyor (onDestroy).

Ekranın pozisyonu değiştirmesi

Ekranın pozisyonu değişiklik olduğunda, etkileşim nasıl davranacağına bakalım. Uygulamayı çalıştıralım ve emülatörde CTRL+F12 basalım. Ekranın pozisyonu değişti. Şimdi bildirimlere bakalım:

MainActivity: onPause()
MainActivity: onStop()
MainActivity: onDestroy()
MainActivity: onCreate()
MainActivity: onStart()
MainActivity: onResume()

Etkileşim tamamen yıkılıyor (yok oluyor) ve yeniden oluşturuyor. Bunu yaparken genellikle kaydetme ve geri yükleme prosedürleri gerçekleşiyor. Amacı veri kaybını önlemek ve uygulamanın şeklini korumak. Bunu nasıl yapıldığını sonraki derslerde ayrıntılı anlatacağım.

Ayrıca onRestart metod mevcuttur. Eğer etkileşim sıfırdan oluşturulmuyorsa ve Stopped durumundan çağrılıyorsa, o zaman onRestart metodu onStart metodundan önce çağrılır.

Konuyu daha iyi anlamak için dersin başında verdiğim referansları okumayı tavsiye ederim.

Ders Sonu Notları:

Bu derste etkileşimin hayat döngüsünü ve durumların nasıl oluştuğunu öğrendik. Sonraki derste iki etkileşimi kullandığımız zaman durumun değişikliğinin nasıl olduğunu öğreneceğiz.

 

Etiketler: activityActivity LifeCycleAndroid programlamaEclipselayoutlogOneActivityStateTAG
Paylaş9PaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • Matepad 11.5 vs S10 Lite
  • 60 bin TL Gaming laptop önerisi
  • 20-24 bin TL arası laptop önerisi
  • EVGA supernova GT 850W 80+ Gold nasıldır?
  • GTX 1060 3 GB, GTX 1050 Ti 4 GB'dan daha mı güçlü?
  • İç ya da dış mimarların kullandığı programlar nelerdir?
  • Bir kale daha yıkıldı! Game Pass için büyük zam geldi
  • 90k laptop önerisi
  • HepsiJet "gönderi numarasını eksik veya hatalı girdiniz" hatası
  • Tam GNSS ölçümlerini zorla ne işe yarar?

Technopat Video

Şu an oynayan

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Akıllı Saat
Huawei Watch GT 6 Pro

Apple’ı 20’ye katlayan saat! Huawei Watch GT 6 Pro incelemesi

Akıllı Saat
Technopat ofisi Eylül ayında neler aldı? 

Technopat ofisi Eylül ayında neler aldı? 

Giyilebilir Teknoloji

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
{title} {title} {title}
Onayı Yönet
En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla depolanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri görüntüle
{title} {title} {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal