Flutter – Dispose

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.

Ads Blocker Image Powered by Code Help Pro

Reklam Engelleyici Algılandı!

Reklamları engellemek için uzantı kullandığınızı tespit ettik.

Lütfen bu reklam engelleyiciyi devre dışı bırakarak ya da sitemize izin vererek bize destek olun.

Dikkat: VPN eklentiniz üzerinde de reklam engelleyici olabilir.