在下面的代码中。 CountdownTimer有两个(黄色和红色),当条件发生变化时,显示屏上显示的CountdownTimer小部件将发生变化,即从黄色切换为红色,反之亦然。
但是,当它切换时,CountdownTimer会“重新初始化”。 例如,假设黄色的初始计时器为60秒,勾选40秒后,还剩下20秒。此时,条件发生了两次更改,例如5秒钟,因此CountdownTimer切换为红色,然后又变为黄色。而不是从15秒开始运行计时器,而是从60秒重新开始。如何阻止小部件的这种“重新初始化”,并且不管条件如何,都允许计时器在后台独立进行?
此外,为了使这个问题更容易理解,我使用了经过修改的代码版本。因此,在实际代码中,我不能使用变量来存储endTime的值。因此,将需要另一版本的答案。
本质上,我需要一种方法来使CountdownTimer都在后台保持活动状态,而不会使垃圾回收器删除它。
condition ? CountdownTimer( // yellow
endTime: DateTime.now().millisecondsSinceEpoch + 200000,
textStyle: TextStyle(fontSize: 50, color: Colors.yellow),
)
: CountdownTimer( // red
endTime: DateTime.now().millisecondsSinceEpoch + 1000,
textStyle: TextStyle(fontSize: 50, color: Colors.red),
),
感谢您抽出宝贵的时间阅读本文章。
答案 0 :(得分:1)