gpt4 book ai didi

flutter 检测屏幕是否关闭

转载 作者:行者123 更新时间:2023-12-03 23:15:00 27 4
gpt4 key购买 nike

我目前正在编写一个应用程序,并记录一些信息(例如 GPS),即使屏幕关闭(即其屏幕已在 sleep 模式下超时)。

它执行 setState()每隔一段时间更新小部件。

但是,如果屏幕处于休眠/非事件状态,我不确定是否需要调用 setState() ,或某些其他 cpu 密集型操作,并且不调用它可能会更好地保护电池?

所以,我想知道是否有任何方法可以检测屏幕是否关闭,因此不调用 setState..

例如在伪代码中

if( checkScreenIsOn() ) { setState((){...})}

我不确定当 flutter 看到的屏幕关闭时是否触发了某些事件。另外,如果像 GPS 这样的东西,我想在屏幕关闭时正常记录(我目前正在使用监听器),但不更新显示。 GPS是否进入不同的模式,如果是,有什么方法可以阻止它?

最佳答案

StatefullWidget 有一个挂载标志 mounted property

而不是 if (checkScreenIsOn())就做if (mounted) setState((){...})
如果您想知道屏幕状态,您必须使用 MethodChannel 与原生 api 进行通信,例如。 https://pub.dartlang.org/packages/screen_state

关于 flutter 检测屏幕是否关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52948223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com