【问题标题】:How to run a timer in initState flutter?如何在 initState 中运行计时器?
【发布时间】:2019-12-20 13:23:49
【问题描述】:

我已经使用颤振创建了一个应用程序,我想在用户导航到屏幕时启动一个计时器来计算他会在那里停留多长时间。

如果他在屏幕上完成了三分钟,我想打印任何东西。

我对计时器或如何使用它没有任何想法。

请帮助我实现这一目标。

谢谢大家。

【问题讨论】:

    标签: flutter dart timer navigation screen


    【解决方案1】:

    你可以这样做。

    Timer _timer;
    
    @override
    void initState() {
        _timer = Timer(Duration(milliseconds: 500), () {
        // SOMETHING
        });
        super.initState();
    }
    
    @override
        void dispose() {
        if (_timer != null) {
            _timer.cancel();
            _timer = null;
        }
        super.dispose();
    }
    

    【讨论】:

    • 是每次都需要nullCheck还是只有在initState中没有启动Timer时才需要?这种情况下可以省略吗?
    • 每次我重建页面时计时器都会重新启动,并且我有一些计时器并行工作。如何只强制一个计时器? @ariel
    【解决方案2】:

    请看这个:

        import 'dart:async';
    main() {
      const twentyMillis = const Duration(milliseconds:20);
      new Timer(twentyMillis, () => print('hi!'));
    }
    

    又看Timer类link

    【讨论】:

      猜你喜欢
      • 2019-07-28
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多