타이머 화면을 나갈 때(앱 안에서 이동) 계속 돌아가는 중이라고 알림 표시
브라우저 탭 자체는 그대로 두고 앱 안에서 다른 화면으로 이동하면 AppLifecycleState가 안 바뀌어서 기존 "탭 이탈" 감지가 못 잡는 사각 지대였음. 화면 dispose 시점에 타이머가 running이면 직접 알림을 띄움. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -77,6 +77,15 @@ class _StudyTimerScreenState extends State<StudyTimerScreen>
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
// 🔔 브라우저 탭은 그대로 두고 앱 안에서 다른 화면으로 이동하는 경우(뒤로가기 등)는
|
||||||
|
// AppLifecycleState가 안 바뀌어서 위쪽 감지 로직이 못 잡는다. 그래서 이 화면을 나갈
|
||||||
|
// 때 타이머가 돌아가는 중이었다면 여기서 직접 알림을 띄워준다.
|
||||||
|
if (_controller.isRunning) {
|
||||||
|
showBrowserNotification(
|
||||||
|
'백품타 타이머가 계속 돌아가고 있어요',
|
||||||
|
'이 화면을 나가도 공부 시간은 계속 기록돼요.',
|
||||||
|
);
|
||||||
|
}
|
||||||
WidgetsBinding.instance.removeObserver(this);
|
WidgetsBinding.instance.removeObserver(this);
|
||||||
_awayTimer?.cancel();
|
_awayTimer?.cancel();
|
||||||
_controller.dispose();
|
_controller.dispose();
|
||||||
|
|||||||
Reference in New Issue
Block a user