🙄
Flutterで定期実行を行う
Flutter/Dartで一定間隔で実行する実装を紹介します!
1秒ごとに点滅させる表示や、0.5秒おきに文字を変えるなどです。
initStateにTimber.periodicでまずは定期実行する処理内容の作成をします。
void initState() {
// 定期実行
Timer.periodic(const Duration(seconds: 5), flash);
定期実行する処理は別途それ用のメソッドを作成して、メソッド内容に処理内容を実装します。
/// 定期実行を実行するメソッド
void flash(Timer timer) {
setState(() {
changeVisible();
});
}
/// 表示/非表示の切替をテキストで行う
void changeVisible() {
_isVisible = _isVisible ? false : true;
}
終了する時は
timer.cancel();
で終了させます。
再度実行したい場合は都度インスタンスを呼ばないといけない。
// 再度実行する時
timer = Timer.periodic(const Duration(seconds: 5), flash);
再度実行する場合はRestartableTimerがあるっぽいんだよな。。
それでできるかも検証します!
Discussion