타이머 화면을 나갈 때(앱 안에서 이동) 계속 돌아가는 중이라고 알림 표시

브라우저 탭 자체는 그대로 두고 앱 안에서 다른 화면으로 이동하면
AppLifecycleState가 안 바뀌어서 기존 "탭 이탈" 감지가 못 잡는 사각
지대였음. 화면 dispose 시점에 타이머가 running이면 직접 알림을 띄움.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 23:30:53 +00:00
co-authored by Claude Sonnet 5
parent 6b66edcd40
commit 521355626d
+9
View File
@@ -77,6 +77,15 @@ class _StudyTimerScreenState extends State<StudyTimerScreen>
@override
void dispose() {
// 🔔 브라우저 탭은 그대로 두고 앱 안에서 다른 화면으로 이동하는 경우(뒤로가기 등)는
// AppLifecycleState가 안 바뀌어서 위쪽 감지 로직이 못 잡는다. 그래서 이 화면을 나갈
// 때 타이머가 돌아가는 중이었다면 여기서 직접 알림을 띄워준다.
if (_controller.isRunning) {
showBrowserNotification(
'백품타 타이머가 계속 돌아가고 있어요',
'이 화면을 나가도 공부 시간은 계속 기록돼요.',
);
}
WidgetsBinding.instance.removeObserver(this);
_awayTimer?.cancel();
_controller.dispose();