Flutter’da dispose yöntemi, bir Stateful widget veya bir State objesi yaşam döngüsünden kaldırıldığında çağrılan bir metoddur. Dispose metodu, widget’in veya state’in kullanılmadığı durumlarda kaynakları temizlemek ve hafızada sızıntıları önlemek için kullanılır.
dispose yöntemini kullanmak için aşağıdaki adımları izleyebilirsiniz:
- Bir Stateful widget oluşturun veya bir State sınıfı tanımlayın.
- State sınıfına dispose yöntemini ekleyin. Bu yöntem aynı sınıfta @override anotasyonuyla birlikte tanımlanmalıdır.
- dispose yönteminde temizleme işlemlerini gerçekleştirin. Örneğin, animasyonları durdurun, timer’ları iptal edin, dinleyicileri kaldırın veya diğer kaynakları serbest bırakın.
import 'package:flutter/material.dart'; class MyWidget extends StatefulWidget { @override _MyWidgetState createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> { Timer _timer; @override void initState() { super.initState(); _timer = Timer.periodic(Duration(seconds: 1), (timer) { // Timer çalıştığında yapılacak işlemler }); } @override void dispose() { _timer.cancel(); // Timer'ı iptal et super.dispose(); } @override Widget build(BuildContext context) { // Widget oluşturma işlemleri } }
Yukarıdaki örnekte, _MyWidgetState
sınıfı, _timer
adında bir Timer
nesnesi tanımlar ve initState
yönteminde başlatır. dispose
yöntemi, Stateful widget yaşam döngüsünden kaldırıldığında _timer
‘ı iptal eder ve gereksiz hafıza kullanımını önler.
Unutmayın, Stateful widget veya State objesi kullanılmadığı zamanlarda dispose
yöntemi çağrılacaktır. Bu nedenle, kaynakları serbest bırakmak ve hafıza sızıntılarını önlemek için bu yöntemi doğru şekilde kullanmanız önemlidir.
Dispose() yöntemi, genellikle kullanıcı farklı bir ekrana geçtiğinde veya uygulamayı kapattığında, pencere öğesi ağaçtan kalıcı olarak kaldırıldığında, bir pencere öğesinin State nesnesinde çağrılır.