Activity Lifecycle: nedir, Android'de onCreate onStart onResume

Yazar: IT Sectr Yayınlanma: 2026-03-03 Okuma süresi: 12 dk

Activity Lifecycle, Android'in bir Activity durumlar arasında geçiş yaparken çağırdığı bir dizi geri çağrı yöntemidir: oluşturma, görünürlük, giriş odağı, kısmi görünürlük kaybı, tamamen gizlenme ve yok etme. Sistem, onCreate() çağrısı anından onDestroy()'a kadar her uygulama ekranının yaşam döngüsünü yönetir. Bu durumları anlamak, kararlı bir Android uygulaması çalışması için zorunlu bir gerekliliktir, çünkü yöntemler arasındaki geçişlerin yanlış işlenmesi bellek sızıntılarına, kullanıcı verisi kaybına ve beklenmeyen çökmelere yol açar. Android mimarisi hakkında daha fazla bilgi için Android hakkındaki genel makaleye bakın.

Önemli Noktalar

  • Activity Lifecycle — kesin olarak tanımlanmış bir yöntem dizisi: onCreate, onStart, onResume, onPause, onStop, onDestroy
  • onCreate — tek zorunlu yöntem, Activity oluşturulurken bir kez çağrılır; burada UI ve veri başlatma işlemleri yapılır
  • onResume — Activity ön plandadır ve kullanıcıyla etkileşime girer; bu ekranın çalışma durumudur
  • onPause / onStop — arka plana geçerken, Activity önce duraklatılır, sonra durdurulur; kritik veriler onPause'da kaydedilir
  • onSaveInstanceState — ekran döndürme ve sistem tarafından Activity yeniden oluşturma sırasında UI durumunu kaydetme mekanizması
  • Fragment yaşam döngüsü — Activity'ye benzer, ancak onAttach, onCreateView, onViewCreated, onDestroyView yöntemleriyle eklenmiştir
  • LifecycleObserver — Activity'de yöntemleri geçersiz kılmadan reaktif durum izleme için Jetpack bileşeni

Activity Lifecycle Nedir

Activity Lifecycle (Activity yaşam döngüsü), bir Android uygulamasının her ekranının oluşturma anından tamamen yok edilmeye kadar geçtiği bir durum makinesidir. Android sistemi bu süreci kullanıcı eylemlerine göre yönetir: uygulamayı açma, küçültme, ekranı döndürme, gelen aramaya yanıt verme, uygulamalar arasında geçiş yapma ve kapatma.

Yaşam döngüsünü anlamak her Android geliştiricisi için gereklidir, çünkü sistem bellek yetersiz olduğunda herhangi bir anda Activity'yi yok edebilir — ve uygulama durumunu doğru şekilde geri yüklemelidir. Google Android Vitals (2025)'e göre, onSaveInstanceState()'da durum kaydetmeyi işlemeyen uygulamalar, Activity yeniden oluşturulduğunda %42 daha fazla çökme gösterir.

Yaşam döngüsü altı ana geri çağrı yöntemi içerir: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(). Ayrıca, bir Activity durdurulmuş durumdan döndüğünde onStart()'tan önce çağrılan onRestart() yöntemi vardır. Her yöntemin kesin olarak tanımlanmış bir amacı ve yürütme süresi vardır — sistem bunları sırayla çağırır ve geliştirici kendi mantığını uygulamak için herhangi birini geçersiz kılabilir.

Döngü üç ana aşamaya ayrılabilir: tam yaşam süresi (onCreate → onDestroy), görünür yaşam süresi (onStart → onStop) ve ön plan yaşam süresi (onResume → onPause). Bu üç seviyeyi anlamak, başlatma ve kaynak serbest bırakma kodunu doğru şekilde dağıtmaya yardımcı olur.

Activity Yaşam Döngüsü Yöntemleri

Her yaşam döngüsü yöntemi kesin olarak tanımlanmış bir görevi yerine getirir. Sistem bunları sabit bir sırayla çağırır ve geliştirici yalnızca belirli mantık için gerekli yöntemleri geçersiz kılmalıdır. Yaşam döngüsü yöntemlerini doğrudan çağırmak önerilmez — bu Android Runtime tarafından yönetilir.

Genel Çağrı Sırası

Uygulama başlatılırken tipik bir sıra: onCreate → onStart → onResume. Geri düğmesine basıldığında: onPause → onStop → onDestroy. Küçültüldüğünde: onPause → onStop, ardından geri dönüşte: onRestart → onStart → onResume.

kotlin
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onStart() {
        super.onStart()
    }

    override fun onResume() {
        super.onResume()
    }

    override fun onPause() {
        super.onPause()
    }

    override fun onStop() {
        super.onStop()
    }

    override fun onDestroy() {
        super.onDestroy()
    }

    override fun onRestart() {
        super.onRestart()
    }
}

Geçersiz kılınan her yöntem süper sürümünü çağırmalıdır — bu olmadan sistem durum geçişini doğru şekilde tamamlayamaz. Bu kural Android Developers belgelerinde belirlenmiştir ve Android Studio'nun lint kuralları tarafından kontrol edilir.

Yaşam Döngüsünün Üç Seviyesi

Birinci seviye — tam yaşam süresi: onCreate ve onDestroy arasındaki aralık. Burada bir kerelik başlatma ve küresel kaynakların nihai serbest bırakılması yapılır. İkinci seviye — görünür yaşam süresi: onStart ve onStop arası. Activity ekranda görünür ancak başka bir pencere tarafından kısmen kapatılabilir. Üçüncü seviye — ön plan yaşam süresi: onResume ve onPause arası. Activity görev yığınının en üstündedir ve kullanıcıyla etkileşime girer.

onCreate — Activity Oluşturma

onCreate() — Activity yaşam döngüsünün ilk ve tek zorunlu yöntemi. Sistem tarafından bir Activity örneği oluşturulurken bir kez çağrılır. Bu yöntem, Activity yok edildikten sonra yeniden oluşturuluyorsa (örneğin, ekran döndürme sırasında) önceden kaydedilmiş durumu içeren bir savedInstanceState: Bundle? parametresi alır.

onCreate içinde şu görevler gerçekleştirilir: setContentView() ile bir düzen kaynağı kullanarak kullanıcı arayüzü başlatma, findViewById() ile View öğelerini bağlama, RecyclerView ve ViewPager için bağdaştırıcıları ayarlama, savedInstanceState'den durumu geri yükleme, ViewModel ve LiveData başlatma, tıklama ve jest dinleyicilerini ayarlama. Yöntem mümkün olduğunca hızlı tamamlanmalıdır — buradaki uzun işlemler ilk karenin işlenmesini engeller ve uygulama başlatma süresini artırır.

kotlin
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_profile)

    val userNameText: TextView = findViewById(R.id.user_name)
    val loadButton: Button = findViewById(R.id.load_button)

    if (savedInstanceState != null) {
        userNameText.text = savedInstanceState.getString("user_name")
    }

    loadButton.setOnClickListener {
        loadUserProfile()
    }
}

Activity ilk kez oluşturuluyorsa, savedInstanceState null'dur. Ekran döndürmeden sonra yeniden oluşturulduğunda, Bundle onSaveInstanceState() içinde kaydedilen verileri içerir. Null kontrolü, kullanıcı tarafından girilen verileri kaybetmeden UI'yı doğru şekilde geri yüklemek için standart bir uygulamadır.

onStart — Ekranda Görünme

onStart(), Activity kullanıcıya görünür hale geldiğinde onCreate()'den hemen sonra veya onRestart()'tan sonra çağrılır. Bu durumda, Activity henüz ön planda değildir ve kullanıcıyla etkileşime giremez, ancak kullanıcı arayüzü zaten ekranda görünür. Örneğin, uygulama başlatılırken sistem, onStart ve onResume çağrıları arasında arayüzün ilk karesini işler.

onStart yönteminde genellikle şu eylemler gerçekleştirilir: Activity görünür olduğu sürece çalışması gereken animasyonları başlatma; BroadcastReceiver'ları bağlama; coğrafi konum hizmetlerine ve sensörlere bağlanma; ViewModel veya Room'dan verileri güncelleme. Uygulama süreç içinde istemci-sunucu mimarisi kullanıyorsa, bindService() aracılığıyla Bound hizmetlerine bağlanma da burada gerçekleştirilir.

kotlin
override fun onStart() {
    super.onStart()
    val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
    locationManager.requestLocationUpdates(
        LocationManager.GPS_PROVIDER,
        5000L,
        10f,
        locationListener
    )
}

override fun onStop() {
    super.onStop()
    val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
    locationManager.removeUpdates(locationListener)
}

Önemli kural: onStart'ta bağlanan kaynaklar onStop'ta serbest bırakılmalıdır. Bu, Activity ekranda görünmediğinde pil ve sistem kaynaklarını tüketmemesini sağlar. Google Play Store, güncellemeleri denetlerken LocationListener ve diğer sistem hizmeti sızıntıları için uygulamaları kontrol eder.

onResume — Odak Alma

onResume() — Activity'nin ön planda olduğu ve kullanıcıyla etkileşime girmeye hazır olduğu durum. Bu, ekranın çalışma durumudur: sistem giriş odağını Activity'ye aktarır ve tüm dokunma olayları, klavye girişi ve jestler bu ekrana yönlendirilir. onResume yöntemi, Activity ön plana her döndüğünde çağrılır — başka bir Activity sona erdikten, bir iletişim kutusu kapatıldıktan veya cihazın kilidi açıldıktan sonra.

onResume'da şunlar gerçekleştirilir: onPause'da duraklatılan animasyonların devam ettirilmesi; kamera ve diğer özel kaynakların açılması; sensör dinleyicilerinin (ivmeölçer, jiroskop) kaydedilmesi; UI için zamanlayıcıların ve kronometrenin başlatılması; ekran içeriğinin güncel verilerle güncellenmesi. onResume/onPause çifti, yalnızca odak varken etkin olması gereken kaynaklar için kullanılır — örneğin, sürekli konuşma tanıma veya video yakalama.

kotlin
override fun onResume() {
    super.onResume()
    cameraHolder.openCamera()
    animator.resume()
    sensorManager.registerListener(
        stepCounter,
        sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),
        SensorManager.SENSOR_DELAY_NORMAL
    )
}

override fun onPause() {
    super.onPause()
    cameraHolder.closeCamera()
    animator.pause()
    sensorManager.unregisterListener(stepCounter)
}

onStart ve onResume arasındaki fark önemlidir: bir Activity görünür (onStart) olabilir ancak etkin (onResume) olmayabilir — örneğin, üzerinde bir açılır iletişim kutusu veya şeffaf kilit ekranı görüntülendiğinde. Özel erişim gerektiren özel kaynaklar, onStart'ta değil onResume'da açılmalıdır.

onPause — Odak Kaybetme

onPause(), Activity giriş odağını kaybettiğinde ancak kısmen görünür kaldığında çağrılır. Tipik senaryolar: bir iletişim kutusu açma, Son uygulamalar düğmesine basma, gelen arama, Ana ekran düğmesine basma (bu durumda onPause'u onStop izler). onPause yöntemi, kullanıcının kaybetmemesi gereken verileri kaydetmek için son güvenilir yerdir.

onPause'da şunlar gerçekleştirilir: e-posta taslaklarının ve giriş formlarının Room veya SharedPreferences'a kaydedilmesi; animasyonların ve video oynatmanın durdurulması; kameranın kapatılması ve özel kaynakların serbest bırakılması; arka planda kritik olmayan pahalı işlemlerin iptal edilmesi. onPause yöntemi 100 milisaniyeden daha kısa sürede tamamlanmalıdır — sistem onPause kontrolü geri verene kadar sonraki Activity'ye geçişi engeller ve sınırın aşılması ANR'ye (Application Not Responding) yol açar.

kotlin
override fun onPause() {
    super.onPause()
    val editor = SharedPreferences.Manager ...
    editor.putString("draft_text", draftEditText.text.toString())
    editor.apply()
    videoView.pause()
    cameraHolder.release()
}

Önemli: onPause UI iş parçacığında yürütülür, bu nedenle Room aracılığıyla senkron bir sorguyla veritabanına yazma gibi herhangi bir engelleme işlemi eşzamansız (coroutine) ile değiştirilmeli veya bir arka plan iş parçacığında yürütülmelidir. SharedPreferences için commit() yerine apply() kullanın — apply verileri eşzamansız olarak yazar ve UI iş parçacığını engellemez.

onStop — Ekrandan Gizlenme

onStop(), Activity kullanıcı için görünür olmaktan çıktığında çağrılır. Bu şu durumlarda gerçekleşir: Activity başka bir Activity tarafından tamamen kaplanmışsa; kullanıcı Ana ekran düğmesine basmış veya başka bir uygulamaya geçmişse; Activity sonlanıyorsa (ardından onDestroy çağrılacaktır). onStop durumunda, Activity bellekte kalır ve tüm alanlarını korur — yok edilmemiştir ancak etkin de değildir.

onStop'ta şunlar gerçekleştirilir: onStart'ta kaydedilen BroadcastReceiver'ların kaydının silinmesi; Bound hizmetlerinden bağlantının kesilmesi; LocationListener, SensorListener ve diğer sistem dinleyicilerinin serbest bırakılması; uygulama gizliyken gerekmeyen uzun arka plan işlemlerinin durdurulması; onPause'da yapılmadıysa onSaveInstanceState() aracılığıyla Bundle'a mevcut UI durumunun yazılması.

kotlin
override fun onStop() {
    super.onStop()
    unregisterReceiver(connectivityReceiver)
    unbindService(serviceConnection)
    if (isChangingConfigurations()) {
        Log.d("Lifecycle", "Yapılandırma nedeniyle Activity yeniden oluşturuluyor")
    }
}

Sistem, bellek yetersiz olduğunda onDestroy'u çağırmadan onStop durumundaki bir Activity'yi yok edebilir. Bu nedenle, tüm kritik veriler onStop'a geçişten önce kaydedilmelidir. isChangingConfigurations() bayrağı, onStop çağrısının ekran döndürmeyle ilgili olup olmadığını belirlemeye olanak tanır — bu durumda Activity sonlandırılmaz, yeniden oluşturulur.

onDestroy — Activity'nin Yok Edilmesi

onDestroy() — Activity tamamen yok edilmeden önce çağrılan son yaşam döngüsü yöntemi. Sistem onDestroy'u iki durumda çağırır: Activity finish() ile sonlanır veya kullanıcı Geri düğmesine basar; Activity bir yapılandırma değişikliği (örneğin, ekran döndürme) nedeniyle sistem tarafından yok edilir ve yeniden oluşturulur. onDestroy yöntemi, nihai kaynak temizliği yapmaya olanak tanır: iş parçacıklarının ve coroutine'lerin bağlantısını kaldırma, kalıcı olarak açık imleçleri ve soketleri kapatma, NDK aracılığıyla yerel belleği serbest bırakma.

kotlin
override fun onDestroy() {
    super.onDestroy()
    backgroundJob.cancel()
    dbHelper.close()
    if (isFinishing) {
        Log.d("Lifecycle", "Activity kalıcı olarak sonlanıyor")
    } else {
        Log.d("Lifecycle", "Activity yeniden oluşturulacak")
    }
}

Önemli not: onDestroy'un çağrılacağı garanti edilmez uygulama süreci sistem tarafından sonlandırılırsa (out-of-memory kill). Bu nedenle, veri kaydetmek için onDestroy'a güvenilemez — bu görev onPause veya onStop'ta çözülür. isFinishing özelliği, finish() ile Activity sonlandırmasını yapılandırma değişikliği nedeniyle yeniden oluşturmadan ayırt etmeye olanak tanır.

onRestart — Durdurulmuş Durumdan Dönüş

onRestart(), bir Activity durdurulmuş durumdan (onStop) ön plana döndüğünde onStart()'tan önce çağrılır. Bu, kullanıcı Son uygulamalar menüsünden uygulamayı yeniden açtığında veya bir alt ekranda Geri'ye basarak bir Activity'ye döndüğünde gerçekleşir. onRestart yöntemi, onCreate'ten farklı bir mantık yürütmeye olanak tanır — örneğin, Activity gizliyken değişmiş olabilecek verileri güncelleme.

kotlin
override fun onRestart() {
    super.onRestart()
    refreshDataFromNetwork()
    Log.d("Lifecycle", "Activity yığından yeniden başlatılıyor")
}

Tipik senaryo: kullanıcı uygulamayı açtı, başka bir göreve geçti ve bir saat sonra geri döndü. onRestart'ta, uygulama verilerin güncelliğini kontrol edebilir ve çok zaman geçmişse içeriği yeniden yüklemeyi önerebilir. Bu, kullanıcı deneyimini iyileştirir ve güncel olmayan bilgilerin görüntülenme olasılığını azaltır.

Ekran Döndürme ve Durum Kaydetme

Ekran döndürme, Activity yeniden oluşturmanın en yaygın senaryosudur. Varsayılan olarak Android, her yön değişikliğinde mevcut Activity'yi yok eder ve yenisini oluşturur. Durum kaydedilmezse, kullanıcı girilen tüm verileri kaybeder. Android bunun için iki mekanizma sağlar: serileştirilebilir veriler için onSaveInstanceState() ve yapılandırma değişikliklerinden kurtulan veriler için ViewModel.

onSaveInstanceState ve onRestoreInstanceState

Geçici durumu kaydetmek için Activity yok edilmeden önce onSaveInstanceState() çağrılır. Kaydedilen veriler, savedInstanceState parametresi aracılığıyla onCreate'a ve onStart'tan sonra çağrılan onRestoreInstanceState() yöntemine iletilir. Bundle'ın bir boyut sınırı vardır — yaklaşık 500 KB, bu nedenle büyük veri hacimleri (örneğin, bitmapler) ViewModel aracılığıyla kaydedilir.

xml
<!-- AndroidManifest.xml — yön sabitleme -->
<activity android:name=".MainActivity"
    android:configChanges="orientation|screenSize" />

android:configChanges ile yönü sabitlemek Activity yeniden oluşturmayı önler, ancak uygulamanın her iki yönü de desteklemesi gerekiyorsa anti-desen olarak kabul edilir. Google'ın modern önerisi, kullanıcının UI'ya girdiği veriler için onSaveInstanceState ile birlikte ViewModel kullanmaktır.

Fragment Yaşam Döngüsü

Fragment, Activity'ye benzer ancak ek yöntemleri olan kendi yaşam döngüsüne sahiptir: onAttach, onCreate, onCreateView, onViewCreated, onStart, onResume, onPause, onStop, onDestroyView, onDestroy, onDetach. Bir Fragment her zaman bir Activity içinde bulunur ve yaşam döngüsü kapsayıcı Activity'nin yaşam döngüsüne bağlıdır. Activity yok edilirse, Fragment onu takip eder.

Temel fark: Fragment yalnızca bileşenin durumunu değil, aynı zamanda View hiyerarşisini de yönetir. onCreateView yöntemi Fragment'ın kök View'ını döndürür ve onDestroyView bu hiyerarşiyi yok eder. Bu, Fragment'ın ekran döndürme sırasında Activity yeniden oluşturulmasından kurtulmasını sağlar: Fragment korunur ve View'ı onCreateView'da yeniden oluşturulur.

kotlin
class ProfileFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return inflater.inflate(R.layout.fragment_profile, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        val avatarImage: ImageView = view.findViewById(R.id.avatar_image)
        loadAvatar(avatarImage)
    }
}

onCreate ve onCreateView arasındaki farkı anlamak son derece önemlidir: onCreate, Fragment'ın ömrü boyunca bir kez (View yeniden oluşturulduğunda bile) çağrılırken, onCreateView, Fragment View hiyerarşisini her oluşturduğunda veya yeniden oluşturduğunda çağrılır. Veri başlatma onCreate'te, UI bağlama ise onViewCreated'da gerçekleştirilir.

LifecycleObserver ve Jetpack

LifecycleObserver — Activity veya Fragment'te yöntemleri geçersiz kılmadan yaşam döngüsü değişikliklerine tepki vermeye olanak tanıyan Android Jetpack kitaplığı bileşeni. Her yaşam döngüsü yönteminde kodu çoğaltmak yerine, geliştirici @OnLifecycleEvent ek açıklamalarına sahip ayrı bir sınıf oluşturur ve bunu lifecycle.addObserver() öğesine iletir.

Jetpack ayrıca, AppCompatActivity ve Fragment tarafından uygulanan LifecycleOwner arayüzünü de sağlar. LifecycleOwner'ı uygulayan herhangi bir nesne, LiveData aboneliklerini, lifecycleScope aracılığıyla coroutine'leri ve yaşam döngüsüyle ilgili WorkManager'ı yönetebilir. Bu, MVVM ve Jetpack tabanlı modern Android mimarisinin temel taşıdır.

kotlin
class MyLocationObserver(private val context: Context) : DefaultLifecycleObserver {
    override fun onStart(owner: LifecycleOwner) {
        startLocationUpdates()
    }

    override fun onStop(owner: LifecycleOwner) {
        stopLocationUpdates()
    }
}

// Activity'de:
lifecycle.addObserver(MyLocationObserver(this))

DefaultLifecycleObserver kullanımı test etmeyi basitleştirir, kod tekrarını azaltır ve yaşam döngüsü mantığını farklı ekranlar arasında yeniden kullanılabilir hale getirir. Bu, her Activity'de manuel olarak onStart/onStop'u geçersiz kılmanın modern bir alternatifidir. IT Sectr tarafından geliştirilen Android uygulamalarında, coğrafi konum, Bluetooth tarama ve analitik için LifecycleObserver uyguluyoruz — bu, kalıp kod hacmini %30–40 oranında azaltır.

Sıkça Sorulan Sorular

Yaşam döngüsü yöntemlerinde super çağrılmazsa ne olur?

super.onCreate() veya başka bir super yaşam döngüsü yöntemi çağrılmazsa, sistem SuperNotCalledException hatası fırlatır ve uygulama çöker. Bu, Android Runtime'ın katı bir gereksinimidir — her yöntem yürütmeyi temel sınıfa devretmelidir, aksi takdirde iç durum makinesi sonraki duruma geçemez.

Ekran döndürüldüğünde Activity neden yeniden oluşturulur?

Ekran döndürüldüğünde Activity yeniden oluşturulur çünkü yön değişikliği bir cihaz yapılandırma değişikliğidir. Varsayılan olarak Android, alternatif kaynakları (layout-land, values-land) yüklemek için Activity'yi yok eder ve yenisini oluşturur. Yeniden oluşturmayı devre dışı bırakmak için manifeste android:configChanges özelliği eklenebilir, ancak Google verileri korumak için ViewModel kullanılmasını önerir.

Uygulama kapatılmadan önce hangi yöntemde veri kaydedilmelidir?

Kritik veriler onPause()'da kaydedilir, çünkü bu, uygulamanın sistem tarafından sonlandırılmadan önce çağrılması garanti edilen son yöntemdir. onStop ve onDestroy'dan sonra sistem, ek yöntem çağırmadan işlemi sonlandırabilir. Taslaklar ve ara veriler için apply() ile SharedPreferences veya coroutine'ler ile Room kullanın.

onPause ve onStop arasındaki fark nedir?

onPause, Activity odağı kaybettiğinde ancak kısmen görünür kaldığında (örneğin, bir iletişim kutusu açıldığında) çağrılır. onStop, Activity başka bir Activity veya Ana ekran düğmesine basılmasıyla ekrandan tamamen gizlendiğinde çağrılır. Temel pratik fark: onPause veri kaydetmek için son noktadır, onStop arka planda gerekmeyen dinleyicileri ve sistem hizmetlerini serbest bırakma yeridir.

ViewModel nedir ve yaşam döngüsüyle nasıl ilişkilidir?

ViewModel, UI verilerini depolayan ve yapılandırma değişikliklerinden (ekran döndürme) otomatik olarak kurtulan bir Android Jetpack bileşenidir. ViewModel, Activity yeniden oluşturulduğunda yok edilmez: LifecycleOwner (Activity veya Fragment) tamamen sonlanana kadar yaşar. Bu, Bundle ve onSaveInstanceState kullanmadan ekran döndürme sırasında veri koruma sorununu çözer. ViewModel, Google tarafından önerilen MVVM mimarisinin zorunlu bir öğesidir.

Özet

  • Activity Lifecycle — onCreate, onStart, onResume, onPause, onStop, onDestroy yöntemlerinin bir dizisi, her biri ekran işleyişinin belirli bir aşamasından sorumludur
  • onCreate — UI başlatma ve yeniden oluşturma sırasında savedInstanceState alma; tek zorunlu yöntem
  • onStart / onStop — görünürlüğü yönetmek için çift: sistem dinleyicilerini ve hizmetlerini kaydetme ve serbest bırakma
  • onResume / onPause — odağı yönetmek için çift: özel kaynaklar (kamera, sensörler) onResume'da açılır ve onPause'da kapatılır
  • Ekran döndürme — varsayılan olarak Activity'yi yeniden oluşturur; onSaveInstanceState + ViewModel ile durum koruma standart uygulamadır
  • Fragment yaşam döngüsü — onAttach, onCreateView, onViewCreated, onDestroyView, onDetach yöntemleriyle eklenmiştir; View, Fragment'ın kendisinden ayrı olarak oluşturulur ve yok edilir
  • LifecycleObserver — Activity'de kodu çoğaltmadan reaktif yaşam döngüsü izleme için Jetpack bileşeni
  • ViewModel — yapılandırma değişikliklerinden kurtulur ve Bundle'a manuel kaydetme olmadan ekran döndürme sırasında veri kaybı sorununu çözer
  • Super kuralı — geçersiz kılınan her yaşam döngüsü yöntemi süper sürümünü çağırmalıdır, aksi takdirde sistem SuperNotCalledException fırlatır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun