在React Native中,当setTimeout
用于调度回调的执行,然后应用程序处于后台时,回调永远不会执行。
为什么?
我确实找到了几个提到这种行为的次要来源,但没有全面的文档。
使用react native:-提供的AppState事件侦听器
useEffect(() => {
const subscription = AppState.addEventListener("change", nextAppState =>
{
if (
appState.current.match(/inactive|background/)
) {
setTimeout(()=>{
// your callback function
},1000)
}
});
return () => {
subscription.remove();
};
}, []);
这是文档链接-https://reactnative.dev/docs/appstate