initState ve dispose
- Flutter kursu
- Başlangıç
- Ders 24/99
- 4 dk
initState ve dispose yaşam döngüsü yöntemlerini öğrenirsin.
Yaşam döngüsü
State nesnesinin bir yaşam döngüsü (lifecycle) vardır. initState, State ağaca ilk eklendiğinde bir kez çağrılır; burada veri tabanı bağlantısı, dinleyici veya denetleyici kurulur. dispose, State ağaçtan kaldırıldığında çağrılır; burada kurduğunuz kaynakları temizlersin.
class _SayacState extends State<Sayac> {
late TextEditingController denetleyici;
@override
void initState() {
super.initState();
denetleyici = TextEditingController();
}
@override
void dispose() {
denetleyici.dispose();
super.dispose();
}
}Kaynak temizliği
initState'te açılan her kaynak, dispose içinde kapatılmalıdır. Aksi halde bellek sızıntısı (memory leak) oluşur. Örneğin TextEditingController, StreamSubscription, AnimationController gibi nesneler dispose metodunda kapatılır. super.dispose() her zaman çağrılmalıdır.
@override
void dispose() {
denetleyici.dispose(); // kontrolü serbest bırak
dinleyici.cancel(); // aboneliği iptal et
super.dispose(); // üst sınıfı bilgilendir
}Uygulama Yaşam döngüsü bilgisini yazdır
main içinde iki satırı print ile yazdır: initState baslar ve dispose bitir.
Başlangıç kodu
void main() {
// iki satır yazdır:
// initState baslar
// dispose bitir
}Örnek çözüm
void main() {
print('initState baslar');
print('dispose bitir');
}Beklenen çıktı
initState baslar dispose bitir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 initState ne zaman çağrılır?
- setState her çağrıldığında
- State ağaca ilk eklendiğinde bir kez Doğru cevap
- Uygulama her açıldığında tekrar tekrar
- Her build'den önce
Açıklama: initState, State ağaca ilk eklendiğinde bir kez çağrılır; kaynak kurulumu burada yapılır.
2 Yaşam döngüsü metodu
@override
void ____() {
super.dispose();
denetleyici.dispose();
}
@override
void dispose() {
super.dispose();
denetleyici.dispose();
}
Açıklama: dispose metodu, State ağaçtan kaldırıldığında kaynakları temizler.
3 Yaşam döngüsü kavramları
| Kavram | Anlamı |
|---|---|
initState |
State eklendiğinde bir kez çağrılır |
dispose |
State kaldırıldığında çağrılır |
lifecycle |
State'in başlangıç ve bitiş ömrü |
memory leak |
Kaynak kapatılmazsa oluşur |