Flutter - срабатывает таймер при заблокированном экране
Я пытаюсь создать таймер обратного отсчета, где я отслеживаю сеанс, когда он начинается. Я использую таймер, когда приложение находится в фоновом режиме, он работает нормально, но когда приложение находится в фоновом режиме и экран заблокирован, таймер не работает должным образом.
Я знаю метод, при котором, когда приложение приостанавливается, таймер останавливается и сохраняется время, а когда возобновляется, рассчитывается время в соответствии с ним. Но если пользователь уничтожает приложение, когда оно находится в фоновом режиме, что мне делать, поскольку я плохо разбираюсь в нативной разработке (все еще изучаю нативную разработку).
пожалуйста, помогите мне. Спасибо.
1 ответ
Не могли бы вы сохранить текущее время (и, предположительно, общую продолжительность) в хранилище?
То есть, когда таймер запускается, напишите что-нибудь в SharedPreferences, что записывает текущее время и общую продолжительность (время обратного отсчета). Пока приложение находится на переднем плане / в фоновом режиме, используйте текущий код. Если пользователь уничтожает приложение и перезапускается, приложение может проверить сохраненные значения при запуске. Затем он может рассчитать, истекла ли продолжительность, и обработать ее соответствующим образом.
Это также может решить проблему, о которой вы упомянули о том, что таймер не работает должным образом, когда приложение находится в фоновом режиме, а экран заблокирован - что имеет смысл, потому что я не думаю, что приложение обязательно работает в этот момент.