在Flutter中管理每个列表项目的后台计时器



我正在研究一个扑动应用程序的功能。该特性是,当服务器(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

这是一个非常好的后台服务包