У меня есть приложениеact-native-init, которое использует appState , чтобы определить, когда приложение переходит в фоновый режим, чтобы скрыть экран, который использовал пользователь (например, список электронных писем), и поместитьизображение перед ним, пока пользователь снова не вызовет передний план приложения и не пройдет проверку подлинности.
Это необходимо для того, чтобы любой человек, проверяющий, какие приложения были открыты в текущий момент, не видел последний экран, который проверял пользователь.в моем приложении выглядит так, и вместо этого вижу изображение (как заставку).
Этого легко добиться в iOS, потому что iOS имеет три этапа:
- active: когда приложение используется на переднем плане.
- неактивно : когда приложение находится в процессе перехода в фоновый режим.
- фон : Когда приложение уже находится в фоновом режиме.
Поэтому, когда приложение становится неактивным , флаг в состоянии компонента изменяется, и вместо компонента отображается изображение с изображениемтекущий экранru.
handleAppStateChange = (nextAppState) => {
if (nextAppState.match(/inactive|background/)) {
this.setState({ showSplashScreen: true })
}
if (this.state.appState.match(/background/) && nextAppState === 'active') {
this.setState({ showSplashScreen: false })
}
}
Тем не менее, Android использует только active и background appStates , поэтому при переходе в фоновый режим функция вызывается с background как nextAppState и флаг showSplashScreen в состоянии изменяется на true, но похоже, что поскольку приложение уже background , компонент не реагирует на изменение состоянияи когда вы проверяете список открытых приложений, вы по-прежнему видите последний использованный экран, экран, который может содержать конфиденциальные данные.
Есть ли способ обнаружить в реагирующем родном Android, когдаприложение будет работать в фоновом режиме, чтобы текущий экран можно было заменить изображением, прежде чем переходить в фоновый режим?