【发布时间】:2020-02-28 15:31:20
【问题描述】:
我需要在计时器结束后按铃。
我正在使用setInterval() 运行计时器。屏幕打开时它可以正常工作,并且应用程序会阻止屏幕自动关闭。但是,如果用户使用电源按钮关闭屏幕,则计时器将在 3 分钟后停止计时,并且不会触发声音。这是由于 Android 睡眠模式和没有唤醒锁定,我认为。如果我再次打开屏幕,它将继续滴答作响。如何启用唤醒锁?
我试过了:
- react-native-background-timer - 有助于在应用程序处于后台时保持滴答作响,但不会在屏幕关闭时保持运行
- react-native-video 播放一些音频文件。屏幕关闭时音频继续播放,但屏幕关闭 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
}
}
如何确保代码使用唤醒锁运行?
【问题讨论】:
-
你能解决这个问题吗?我对后台计时器有同样的问题。
-
那种。我发布了一个答案
标签: javascript react-native timer react-native-android