Периодический таймер дублируется в initState()

При переходе на другую страницу запускается периодический таймер в initState(). Но он почему-то дублируется.

Либо я делаю неправильный переход на другую страницу. Либо initState() задваивается.

Код перехода с одной страницы на другую:

Navigator.push(
    context,
    new MaterialPageRoute(
        builder: (context) => new MapPage(phone: _phone)));

Вызов таймера:

  @override
  void initState() {
    super.initState();
    _timerSendPointStart = Timer.periodic(Duration(seconds: 10), (timer) {
      setState(() {
        makePoint();
      });
    });
  }

Подскажите, пожалуйста, где ошибка и как правильно это должно быть реализовано?


Ответы (1 шт):

Автор решения: Vadim Popov

Убедитесь, что в методе dispose вы останавливаете таймер.

@override
  void dispose() {
    super.dispose();
    _timerSendPointStart?.cancel();
  }
→ Ссылка