- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个计时器应用程序,该应用程序具有多个用于不同任务的倒数计时器。问题,我面临的是,如果我启动一个计时器,然后按返回按钮,计时器就会停止。所以我想要,该计时器一直运行到它被暂停或计时器结束并提醒用户或应用程序被破坏。帮助我如何使用 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/
我是一名优秀的程序员,十分优秀!