Mobile/Flutter
Timer 사용(setInterval, setTimeout)
tranzal
2022. 6. 6. 20:48
자바스크립트에서 사용하던 setInterval과 setTimeout과 같은 기능을 Flutter에서 사용하기 위해서는 Timer라는 위젯을 사용해야 한다.
해당 위젯의 기본 사용 방법은
Timer.periodic(const Duration(milliseconds: [시간주기]), (timer) {
//주기마다 실행할 내용
});
위 처럼 Duration을 이용하여 얼마의 시간마다 실행할지를 정하고 콜백 함수 내에 원하는 코드를 작성하면 된다.
일반적으로 타이머를 종료하기 위해서는
timer.cancel();
을 콜백 안에 작성하면 된다.
만약 종료하는 곳이 콜백 내부가 아니라 다른 곳이라면
class _MyAppState extends State<MyApp> {
Timer? _timer = null;
@override
void initState() {
super.initState();
setState(() {
_timer = Timer.periodic(const Duration(milliseconds: 1000), (timer) {
//실행할 함수
});
});
}
}
위 처럼 작성을 하여 필요한 곳에서 _timer를 호출하여 종료시킬 수 있다.