优化定时器
This commit is contained in:
@@ -2,17 +2,11 @@ import 'dart:async';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:getx_scaffold/common/common.dart';
|
||||
import 'package:getx_scaffold/common/services/http.dart';
|
||||
import 'package:getx_scaffold/getx_scaffold.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:ln_jq_app/common/model/base_model.dart';
|
||||
import 'package:ln_jq_app/common/model/station_model.dart';
|
||||
import 'package:ln_jq_app/common/model/vehicle_info.dart';
|
||||
import 'package:ln_jq_app/pages/b_page/site/controller.dart';
|
||||
import 'package:ln_jq_app/pages/c_page/reservation_edit/controller.dart';
|
||||
import 'package:ln_jq_app/pages/c_page/reservation_edit/view.dart';
|
||||
import 'package:ln_jq_app/pages/qr_code/view.dart';
|
||||
import 'package:ln_jq_app/storage_service.dart';
|
||||
|
||||
@@ -395,7 +389,6 @@ class C_ReservationController extends GetxController with BaseControllerMixin {
|
||||
);
|
||||
var result = BaseModel.fromJson(responseData?.data);
|
||||
|
||||
|
||||
if (responseData == null || result.code != 0) {
|
||||
dismissLoading();
|
||||
showToast(result.error);
|
||||
@@ -546,6 +539,7 @@ class C_ReservationController extends GetxController with BaseControllerMixin {
|
||||
//用来管理查看预约的弹窗
|
||||
Worker? _sheetWorker;
|
||||
bool init = false;
|
||||
Timer? _refreshTimer;
|
||||
|
||||
@override
|
||||
bool get listenLifecycleEvent => true;
|
||||
@@ -555,7 +549,7 @@ class C_ReservationController extends GetxController with BaseControllerMixin {
|
||||
super.onInit();
|
||||
getUserBindCarInfo();
|
||||
getSiteList();
|
||||
|
||||
startAutoRefresh();
|
||||
if (!init) {
|
||||
_setupListener();
|
||||
init = true;
|
||||
@@ -565,9 +559,27 @@ class C_ReservationController extends GetxController with BaseControllerMixin {
|
||||
@override
|
||||
void dispose() {
|
||||
_sheetWorker?.dispose();
|
||||
stopAutoRefresh();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void startAutoRefresh() {
|
||||
// 先停止已存在的定时器,防止重复启动
|
||||
stopAutoRefresh();
|
||||
|
||||
// 创建一个每1分钟执行一次的周期性定时器
|
||||
_refreshTimer = Timer.periodic(const Duration(minutes: 1), (timer) {
|
||||
getSiteList();
|
||||
});
|
||||
}
|
||||
|
||||
///停止定时器的方法
|
||||
void stopAutoRefresh() {
|
||||
// 如果定时器存在并且是激活状态,就取消它
|
||||
_refreshTimer?.cancel();
|
||||
_refreshTimer = null; // 置为null,方便判断
|
||||
}
|
||||
|
||||
void _setupListener() {
|
||||
_sheetWorker = ever(shouldShowReservationList, (bool shouldShow) {
|
||||
if (shouldShow) {
|
||||
@@ -691,7 +703,9 @@ class C_ReservationController extends GetxController with BaseControllerMixin {
|
||||
try {
|
||||
showLoading("加氢站数据加载中");
|
||||
|
||||
var responseData = await HttpService.to.get("appointment/station/queryHydrogenSiteInfo");
|
||||
var responseData = await HttpService.to.get(
|
||||
"appointment/station/queryHydrogenSiteInfo",
|
||||
);
|
||||
|
||||
if (responseData == null || responseData.data == null) {
|
||||
showToast('暂时无法获取站点信息');
|
||||
|
||||
Reference in New Issue
Block a user