feat: add app lifecycle refresh coordinator

This commit is contained in:
qzl
2026-03-20 15:39:44 +08:00
parent e64b9c670c
commit f4c07287bc
3 changed files with 80 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
import 'package:flutter/widgets.dart';
class CacheRefreshCoordinator with WidgetsBindingObserver {
final Duration minInterval;
final void Function() onRefresh;
final DateTime Function() now;
DateTime? _lastRefreshedAt;
CacheRefreshCoordinator({
required this.minInterval,
required this.onRefresh,
DateTime Function()? now,
}) : now = now ?? DateTime.now;
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state != AppLifecycleState.resumed) {
return;
}
final current = now();
final last = _lastRefreshedAt;
if (last != null && current.difference(last) < minInterval) {
return;
}
_lastRefreshedAt = current;
onRefresh();
}
}