asdda
adsadaunknown
plain_text
2 years ago
1.7 kB
4
Indexable
class _CalculateUserActivityTimeTestViewState extends State<CalculateUserActivityTimeTestView> with WidgetsBindingObserver { late Timer _timer; ActivityModel model = ActivityModel(0); @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); _initializeTimer(); } void _initializeTimer() { _timer = Timer.periodic(const Duration(seconds: 1), (Timer timer) { model.userActivityTotalSecond = timer.tick; print(model.userActivityTotalSecond); setState(() {}); }); } void _stopTimer() { if (_timer.isActive) { _timer.cancel(); } } @override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); } @override void didChangeAppLifecycleState(AppLifecycleState state) { switch (state) { case AppLifecycleState.inactive: print("Inactive"); break; case AppLifecycleState.paused: _stopTimer(); break; case AppLifecycleState.resumed: _initializeTimer(); break; case AppLifecycleState.detached: print("detached"); break; } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("User Activity Time"), ), floatingActionButton: FloatingActionButton( child: const Icon(Icons.stop), onPressed: () { _stopTimer(); }, ), body: Center( child: Text("Total second: ${model.userActivityTotalSecond}"), ), ); } } class ActivityModel { late int userActivityTotalSecond; ActivityModel(this.userActivityTotalSecond); }
Editor is loading...