当应用程序处于后台时,在反应本机后台计时器 setInterval 中调用 await
Posted
技术标签:
【中文标题】当应用程序处于后台时,在反应本机后台计时器 setInterval 中调用 await【英文标题】:calling await inside react native background timer setInterval when app is in background 【发布时间】:2020-06-20 03:56:26 【问题描述】:我在 react native 后台计时器 setInterval 中有一个 api 调用,它会导致代码执行暂停。如果我只是在回调中做简单的事情,即使应用程序在后台,它也可以正常工作,但是如果我在回调函数中使用 await 关键字,它会暂停执行。当应用程序成为前台时,所有任务都会立即执行
const runTimer = () =>
BackgroundTimer.start();
timerInterval = BackgroundTimer.setInterval(async () =>
await callAnApi();
, 20000);
;
const stopTimer = () =>
BackgroundTimer.clearInterval(timerInterval);
BackgroundTimer.stop();
;
【问题讨论】:
【参考方案1】:您可以使用react-native-background-timer
即使应用在后台也能正常工作。
你可以找到here更多关于实现的细节
【讨论】:
在后台定时器中使用 await 导致暂停 我想在最后一个完成之前不运行新的 api 调用。所以我需要一些异步 setInterval以上是关于当应用程序处于后台时,在反应本机后台计时器 setInterval 中调用 await的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序处于后台状态(Android)时,远程推送通知提示无法在本机反应中工作
当应用程序在后台或在本机反应中被杀死时,是不是可以检查用户的移动活动?