我目前正在编写一个应用程序,并记录一些信息(例如 GPS),即使屏幕关闭(即其屏幕在睡眠模式下超时)。
它setState()经常执行更新小部件。
但是,如果屏幕处于睡眠/不活动状态,我不确定是否需要调用setState()或某些其他 cpu 密集型操作,并且通过不调用它可能会更好地节省电池?
所以,我想知道是否有任何方法可以检测屏幕是否关闭,从而不调用 setState..
例如在伪代码中
if( checkScreenIsOn() ) { setState((){...})}
Run Code Online (Sandbox Code Playgroud)
我不确定当屏幕关闭时是否会触发某些事件。另外,如果像 GPS 这样的东西,我想在屏幕关闭时正常记录(我当前正在使用侦听器),但不更新显示。GPS 是否会进入不同的模式,如果是这样,有什么方法可以阻止这种情况吗?
StatefullWidget 有一个 Mounted 标志Mounted 属性
而不是if (checkScreenIsOn())仅仅做if (mounted) setState((){...})
如果你想知道屏幕状态,你必须使用 MethodChannel 与本机 api 进行通信,例如。https://pub.dartlang.org/packages/screen_state
| 归档时间: |
|
| 查看次数: |
8097 次 |
| 最近记录: |