Попробуйте прослушать изменения AppState, и когда ваше приложение перейдет в фоновый режим, вы должны начать делать то, что вы хотите.
import { AppState } from 'react-native';
import BackgroundTimer from 'react-native-background-timer';
state = {
appState: AppState.currentState
}
В componentDidMount используйте это:
AppState.addEventListener('change', this._handleAppStateChange);
In componentWillUnmount:
AppState.removeEventListener('change', this._handleAppStateChange);
Используйте что-то вроде этой функции, и вы получите свой результат, когда приложение будет в фоновом режиме.
_handleAppStateChange = (nextAppState) => {
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
console.log('App has come to the foreground!');
} else {
console.log('App is in background');
const interval = BackgroundTimer.setInterval(() => {
console.log('listen for location changes here');
if (this.state.appState === 'active') {
//Stop the interval when AppState goes
//back to active again
BackgroundTimer.clearInterval(interval);
}
}, 1000);
}
}
this.setState({ appState: nextAppState });
}