颤振检测屏幕是否关闭

时间:2018-10-23 11:43:22

标签: flutter

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

它经常执行一次val myList = listOf("item1", "item2", "item3") 以更新小部件。

但是,如果屏幕处于睡眠状态/不活动,我不确定是否需要调用setState()或某些其他占用大量CPU资源的操作,并且最好不调用它来节省电池电量?< / p>

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

例如使用伪代码

setState()

我不确定当萤幕熄灭时是否会触发某些事件,如颤动所见。另外,如果有GPS之类的功能,我想在屏幕关闭时(我目前正在使用监听器)正常记录,但不更新显示内容。 GPS会进入其他模式吗?如果有的话,有什么方法可以阻止它?

1 个答案:

答案 0 :(得分:1)

StatefullWidget具有已安装标志mounted property

执行if (checkScreenIsOn())代替if (mounted) setState((){...})

如果您想知道屏幕状态,则必须使用MethodChannel与本机api通信,例如。 https://pub.dartlang.org/packages/screen_state