Флаттер обнаруживает, выключен ли экран - PullRequest
0 голосов
/ 23 октября 2018

В настоящее время я пишу приложение и записываю некоторую информацию (например, GPS), даже если экран выключен (то есть время ожидания его экрана в режиме ожидания).

Время от времени выполняется setState() для обновления виджетов.

Однако, если экран спит / неактивен, я не уверен, что есть необходимость звонить setState()или некоторые другие интенсивные действия процессора, и может быть лучше сохранить батарею, не вызывая ее?

Итак, мне интересно, есть ли способ определить, выключен ли экран, и, следовательно, не вызывать setState..

например, в псевдокоде

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

Я не уверен, что происходит какое-то событие, когда экран гаснет, когда видит трепетание.Также, если такие вещи, как GPS, я хотел бы записывать нормально, когда экран выключен (я в настоящее время использую слушатель), но не обновлять дисплей.Переходит ли GPS в другой режим, и если да, то как это остановить?

1 Ответ

0 голосов
/ 23 октября 2018

StatefullWidget имеет установленный флаг смонтированное свойство

Вместо if (checkScreenIsOn()) просто выполните if (mounted) setState((){...})

Если вы хотите узнать состояние экрана, вы должны использовать MethodChannelобщаться с нативным API, например.https://pub.dartlang.org/packages/screen_state

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...