asdda
adsadaunknown
plain_text
3 years ago
1.7 kB
7
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...