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를 호출하여 종료시킬 수 있다.