运行 Flutter 中的后台计时器
Run Timer in Backgrounf in flutter
我想要 运行 后台计时器,即使用户关闭了应用程序。并且不要停止,直到用户不停止甚至应用程序关闭。
我试过流但是当应用程序关闭时它停止了。
所以请帮助我。
提前致谢。
尝试使用这个包 - https://pub.dev/packages/android_alarm_manager
我也附上这个视频,这可以解决你的问题 - https://youtu.be/A4_L959tRuM
感谢您的回答
但我找到了解决方案,例如使用 SharedPreferences 将当前时间保存在本地设备中,当用户再次打开应用程序时,发现两者之间的区别
已保存时间和当前时间显示在我的应用程序中
这是我的代码
startTimer() {
timerStream = stopWatchStream();
timerSubscription = timerStream.listen((int newTick) {
String time = _sharedPreferences.getString("time");
Duration duration = DateTime.now().difference(DateTime.parse(time));
setState(() {
hoursStr = ((duration.inSeconds / (60 * 60)) % 60)
.floor()
.toString()
.padLeft(2, '0');
minutesStr =
((duration.inSeconds / 60) % 60).floor().toString().padLeft(2, '0');
secondsStr =
(duration.inSeconds % 60).floor().toString().padLeft(2, '0');
});
});
}
我想要 运行 后台计时器,即使用户关闭了应用程序。并且不要停止,直到用户不停止甚至应用程序关闭。 我试过流但是当应用程序关闭时它停止了。 所以请帮助我。 提前致谢。
尝试使用这个包 - https://pub.dev/packages/android_alarm_manager
我也附上这个视频,这可以解决你的问题 - https://youtu.be/A4_L959tRuM
感谢您的回答
但我找到了解决方案,例如使用 SharedPreferences 将当前时间保存在本地设备中,当用户再次打开应用程序时,发现两者之间的区别 已保存时间和当前时间显示在我的应用程序中
这是我的代码
startTimer() {
timerStream = stopWatchStream();
timerSubscription = timerStream.listen((int newTick) {
String time = _sharedPreferences.getString("time");
Duration duration = DateTime.now().difference(DateTime.parse(time));
setState(() {
hoursStr = ((duration.inSeconds / (60 * 60)) % 60)
.floor()
.toString()
.padLeft(2, '0');
minutesStr =
((duration.inSeconds / 60) % 60).floor().toString().padLeft(2, '0');
secondsStr =
(duration.inSeconds % 60).floor().toString().padLeft(2, '0');
});
});
}