我正在研究一个扑动应用程序的功能。该特性是,当服务器(DB)中的某些条目发生时,我通过套接字连接获得通知并将该条目添加到List
中。屏幕上有一个按钮,在单击并显示项目列表时显示一个对话框。我们也可以把盒子关上,需要时再打开。
现在我想将Timer
附加到List
中的每个项目。计时器的目的是在1分钟后从列表中删除该项目。当对话框不出现时,所有删除项目的功能都必须在后台运行。在打开对话框时,每次必须显示更新的列表。
现在我可以将项目添加到列表中并在对话框中显示它们,并且它正在工作。
我只是想找出后台运行任务的解决方案,其中项目在时间结束后自动从列表中删除。
在一分钟后执行操作的最简单方法可能只是等待这样的未来:
Future<void> deleteAfter1Minute() async {
await Future.delayed(const Duration(minutes: 1));
// delete item from list
// ... your code
print('item deleted');
}
你也可以启动一个计时器,在给定的持续时间后触发回调:
final timer = Timer(const Duration(minutes: 1), () {
// delete item from list
// ... your code
print('item deleted');
timer.cancel();
});
如果你附加一些代码来更好地理解你是从哪里来的,它可能也会有所帮助。
最好
你可以使用后台服务包
flutter_background_service
这是一个非常好的后台服务包