

Timer란?
Timer는 일정 시간 간격으로 특정 함수를 실행하거나, 지정된 시간 후에 함수를 한번 또는 주기적으로 실행하는 기능을 제공한다.
Timer는 Flutter에 기본 제공되는 dart:async 패키지를 불러오면 사용 할 수 있다.
이 뜻은 pubspec.yaml 파일에 추가를 따로 하지 않아도 기본적으로 불러와서 사용할 수 있음을 나타낸다.
Flutter에서는 dart:async 패키지의 Timer 클래스를 사용하여 타이머 기능을 구현할 수 있다.
Timer 사용 방법
Timer는 다음과 같은 방식으로 사용할 수 있다:
1. 일정 시간 후에 함수 실행하기:
첫 번째 파라미터에 기간 입력
Timer 클래스를 정의를 한 다음에 이 안에 첫 번째 파라미터로 Duration(기간이라는 뜻) 이라는, 클래스를 생성한다.
그리고 Duration 클래스의 파라미터로 원하는 기간을 입력해주면 된다.
지금은 1초를 원하기 때문에, 네임드 파라미터로 seconds를 넣어주고 값을 1로 명시해주었다.
만약에 1분을 넣고 싶다면, seconds 대신에 minutes라고 한 다음에 1이라고 명시해주면 된다.
두 번째 파라미터에 실행할 함수 입력
다음으로 두 번째 파라미터는 실행할 함수를 입력을 해준다.
위 이미지의 함수는 print()문을 통해 '1초 뒤에 실행한다!' 라는 글자를 포함하고 있다.
그러면 main() 함수를 실행을 했을 때 '1초 뒤에 실행한다!'라는 글자가 바로 출력이 되지 않는다.
Duration에 입력된 1초가 지난 뒤에 print()문을 통해 '1초 뒤에 실행한다!' 가 출력이 실행다.
2. 일정 시간 간격으로 함수 반복 실행하기:
반복 실행도 첫 번째 파라미터에 기간을 입력하고 두 번째 파라미터에 실행할 함수를 입력한다.
단일실행과 차이점
콜백함수 파라미터 안에 사용했던 Timer 클래스의 인스턴스(timer)를 그대로 반환을 해준다.
노란색 박스가 Timer 클래스이고, 연두색 박스가 Timer 클래스의 인스턴스인 timer이다.
인스턴스를 반환해주는 이유는 한 번 실행할 때는 해당되지가 않지만, 반복적으로 무언가를 실행할 때는 언젠가는 이 반복적으로 실행하는 것을 멈추고 싶을 때가 있다.
그때 파라미터에 받은 timer인스턴스를 활용하여 timer.cancel()이라는 함수를 실행을 해주면 반복적으로 실행하는 것을 취소 수 있다.
한 가지 차이점이 하나더 있는데 Timer 클래스에 .periodic 이라는 네임드 생성자를 사용한다.
그러면 단일 실행 대신에 반복 실행을 사용할 수가 있다라고 알고 있으면 된다.
예제
실행 결과:
1초 뒤에 실행한다!
1초 뒤에 실행한다!
1초 뒤에 실행한다!
1초 뒤에 실행한다!
1초 뒤에 실행한다!
'Flutter 초급' 카테고리의 다른 글
폰트 추가하기 (1) | 2024.09.07 |
---|---|
DateTime과 Duration (0) | 2024.09.06 |
Lifecycle (0) | 2024.09.02 |
StatefulWidget (0) | 2024.09.01 |
콜백 함수 (0) | 2024.09.01 |

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!