React Native - таймер wake-lock - PullRequest
       5

React Native - таймер wake-lock

0 голосов
/ 28 февраля 2020

Мне нужно позвонить в звонок, когда таймер закончится. Я запускаю таймер с setInterval(). Он работает нормально, когда экран включен, и приложение не дает экрану автоматически выключаться. Однако, если пользователь поворачивает экран с помощью кнопки питания, таймер просто перестанет тикать через 3 минуты и не запустит звук. Это связано с Android спящим режимом и отсутствием wake-lock, я полагаю. Если я снова включу экран, он снова заработает. Как включить wake-lock?

Я пробовал:

  • response-native-background-timer - помогает держать галочку, если приложение находится в фоновом режиме, но не с выключенным экраном
  • реагировать-родной-видео, воспроизводящий некоторый аудиофайл. Звук продолжает воспроизводиться с выключенным экраном, но таймер все еще останавливается, когда экран выключен на 3 минуты

Вот (рабочий) пример кода функции в моем классе таймера:

play = () => {
    if (this.timeLeft != 0) {
      this.paused = false
      this.running = BackgroundTimer.setInterval(() => {
        if (!this.paused) {
          this.timePassed++
          this.timeLeft = this.duration - this.timePassed     
        }
        if(this.timeLeft <= 0) {
          BackgroundTimer.clearInterval(this.running)
          this.playBell()
        }
      }, 1000)
    } else {
      this.stopped = true
    }
  }

Как я могу обеспечить выполнение кода с помощью wake-lock?

...