android - 如何在 flutter 的后台运行时钟计时器?

标签 android flutter timer background-service

我正在尝试创建一个计时器应用程序,该应用程序具有多个用于不同任务的倒数计时器。问题,我面临的是,如果我启动一个计时器,然后按返回按钮,计时器就会停止。所以我想要,该计时器一直运行到它被暂停或计时器结束并提醒用户或应用程序被破坏。帮助我如何使用 Flutter 做到这一点?我也使用 sql-lite 来存储所有计时器。

最佳答案

啊,后台任务! Dart(Flutter 使用的语言)是单线程的。single-threaded 是什么意思意思是?
像 Dart 这样的单线程语言有一个叫做事件循环的东西。这意味着 Dart 逐行运行代码(除非您使用 Futures,但在这种情况下对您没有帮助)。它记录按钮点击等事件并等待用户按下它们等。
我推荐这篇关于单线程的文章和视频:
https://medium.com/dartlang/dart-asynchronous-programming-isolates-and-event-loops-bffc3e296a6a
https://www.youtube.com/watch?v=vl_AaCgudcY&feature=emb_logo
无论如何,解决这个问题的方法(如上面的文章和视频中所述)是孤立的。当你在 Dart 中创建一个 Isolate 时,它​​会启动另一个线程来执行繁重的任务或只是在应用程序可能或可能不处于焦点时执行一些事情。这样,主线程可以在另一个线程中加载 UI 等内容,它会处理您放入其中的其他内容,从而提高应用程序的性能。
它与您的问题有什么关系?
您可以使用 Isolates 在您的应用程序(打开或未打开)的后台执行任务。
本质上它使用 Timer.periodic在隔离内执行非常适合您的场景的任务。

关于android - 如何在 flutter 的后台运行时钟计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59480124/

相关文章:

android - AppCompat v7 工具栏 "Error inflating class <unknown>"

机器人,改造 : Pressing back button during API call crashes the app

flutter - 如何在 flutter 中实现聊天气泡形状的小部件

flutter - 如何使用RawMaterialButton中的onLongPressed属性连续增加或减少值?

javascript - NodeJS 设置超时

java - 以编程方式安装 apk,无需定义 apk 名称

android - 找不到com.google.android.gms :play-services-ads:11.0.2. Required by: project :

flutter - 使用 Streambuilder 包装 CustomScrollView 和 Sliverlist 会引发异常

java - 如何在 Timer 完成数组列表迭代后停止 Java

c# - 等待长时间(24 小时或更长时间)的正确计时器是什么?