Örnek sorular
Kt Android Lifecycle Background ExecutionZorluk 1
Bir Android Activity'sinde onCreate() temel olarak neyi yapar?
- aActivity kaybolmadan önce tüm kaynakları serbest bırakmak.
- bLayout'u inflate edip başlangıç durumunu kurmak, bir kez.✓
- cKullanıcının yaptığı her dokunma olayını ele almak.
- dEkran kapandıktan sonra arka planda sürekli çalışmak.
Açıklama:onCreate(), bir Activity instance'ının oluşturulması sırasında bir kez çalışır; layout inflate edilir, view'lar kurulur ve varsa kaydedilmiş durum geri yüklenir — kullanıcı ekrana geri döndüğünde tekrar çağrılmaz.
Kt Android Lifecycle Background ExecutionZorluk 1
Aşağıdakilerden hangisi onCreate() ile onStart() arasındaki farkı doğru tanımlar?
- aİkisi her zaman tam olarak aynı anda çalışır, sıra önemli değildir.
- b
onStart() her açılışta onCreate()'ten önce çalışır. - c
onCreate() bir instance için birden çok kez çağrılabilir, onStart() sadece bir kez. - d
onCreate() bir kez, onStart() her görünür olduğunda çalışır.✓
Açıklama:onCreate() bir kez (başlangıç kurulumu için) çalışır. onStart() ise activity her görünür olmaya başladığında (arka plandan dönüşte dahil) çalışır — bu yüzden bir instance için birden çok kez tetiklenebilirken onCreate() sadece bir kez çalışır.
Kt Android Lifecycle Background ExecutionZorluk 1
onPause() ile onStop() arasındaki temel pratik fark nedir?
- a
onPause() odak kaybında, onStop() görünmez olunca çalışır.✓ - bİkisi aynı callback'in iki farklı adıdır.
- c
onStop() her senaryoda onPause()'dan önce çalışır. - d
onPause() sadece fragment'ler için vardır, activity'ler için asla.
Açıklama:onPause(), activity hâlâ kısmen görünürken ama odağı kaybederken çalışır (örn. üstüne bir dialog açılması). onStop() ise activity artık hiç görünmediğinde çalışır.
Kt Android Lifecycle Background ExecutionZorluk 2
Bir Activity'nin süreci ortadan kalkmadan önce onDestroy()'un her zaman çağrılacağı garanti midir?
- aEvet, hiçbir istisna olmadan her zaman.
- bHayır,
onDestroy() gerçek cihazlarda hiç çalışmaz. - cHayır — sistem, çağırmadan süreci sonlandırabilir.✓
- dEvet, ama sadece kullanıcı geri tuşuna açıkça basarsa.
Açıklama:onDestroy() son lifecycle callback'idir ama kesin bir garanti değildir — sistem bellek geri almak zorunda kalırsa, onDestroy()'u hiç çağırmadan süreci doğrudan sonlandırabilir; bu yüzden kritik temizlik sadece buna güvenmemelidir.
Kt Android Lifecycle Background ExecutionZorluk 2
Ekranda düz (ViewModel olmayan) bir var count = 0 property'si olan bir Activity açıkken cihaz döndürülüyor. Varsayılan olarak count'a ne olur?
- aOtomatik olarak diske yazılır ve birebir geri yüklenir.
- bRotasyon çalışan bir Activity instance'ını hiçbir şekilde etkilemez.
- cActivity yeniden oluşturulur,
count 0'a sıfırlanır.✓ - d
count'un rotasyon boyunca artmaya devam etmesi garantidir.
Açıklama:Varsayılan olarak rotasyon gibi bir configuration change, Activity instance'ını yok edip yeniden oluşturur; bu yüzden onSaveInstanceState veya bir ViewModel ile açıkça kaydedilmemiş düz bir bellek-içi property kaybolur ve başlangıç değerine sıfırlanır.
Kt Android Lifecycle Background ExecutionZorluk 1
Activity'nin kendisi yok edilip yeniden oluşturulurken, bir ViewModel instance'ı neden bir configuration change'i (rotasyon gibi) atlatır?
- aAtlatmaz; her
ViewModel de rotasyonda yok edilip yeniden oluşturulur. - b
ViewModel aslında özel bir Activity alt sınıfıdır. - cFramework onu yeniden oluşturma boyunca tutar ve yeniden bağlar.✓
- dHer rotasyonda otomatik olarak diske serialize edildiği için atlatır.
Açıklama:Architecture Components ViewModel'i bir lifecycle owner'a bağlıdır ve framework tarafından configuration-change yeniden oluşturmaları boyunca canlı tutulur; yeni Activity instance'ı sadece aynı tutulan ViewModel'e yeniden bağlanır, bu yüzden bellek-içi durumu hayatta kalır.