34 lines
682 B
Dart
34 lines
682 B
Dart
import 'dart:async';
|
|
import 'package:get/get.dart';
|
|
|
|
class CountdownController extends GetxController {
|
|
var countdown = 0.obs;
|
|
Timer? timer;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
}
|
|
|
|
void startCountdown(int seconds) {
|
|
timer?.cancel(); // 取消之前的定时器
|
|
countdown.value = seconds;
|
|
timer = Timer.periodic(Duration(seconds: 1), (timer) {
|
|
int elapsed = timer.tick;
|
|
int remaining = seconds - elapsed;
|
|
if (remaining > 0) {
|
|
countdown.value = remaining;
|
|
} else {
|
|
countdown.value = 0;
|
|
timer.cancel();
|
|
}
|
|
});
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
timer?.cancel();
|
|
super.onClose();
|
|
}
|
|
}
|