У меня есть одно собственное приложение для реагирования, в котором я использовал поток реагирования на собственный маршрутизатор, моя сцена падает таким образом
- Всплеск
- Авторизоваться
- Щиток приборов
- При щелчке по значку панели инструментов открывается экран уведомлений.
Первоначально, когда приложение загружено, все идет гладко. Но когда я нажимаю значок панели инструментов, он переходит на экран уведомлений, а когда я нажимаю кнопку возврата Android, он переходит на экран панели инструментов, поскольку я написал BackHandler и в котором я написал Actions.pop ()
Теперь на панели инструментов я написал BackHandler с проверочным счетчиком, т.е. если кнопка «Назад» нажата два раза и выйдет из приложения, но проблема в том, что он работает только в том случае, если я не перешел на экран уведомлений, когда я перехожу на экран уведомлений и затем нажмите кнопку «Назад», он перейдет на панель управления, но когда я снова нажимаю кнопку «Назад» на панели управления, я просто перехожу на экран входа в систему, а оттуда - на экран-заставку.
Я хочу, чтобы даже если я перешел на экран уведомлений и нажал кнопку «Назад», я должен перейти на панель управления и нажать кнопку «Назад» на панели управления (2 раза), он должен выйти из приложения без перенаправления на экран входа и заставки.
Мой код для экрана панели инструментов -
constructor(props) {
super(props);
this.backCount = 0;
this.onHandleBackButton = this.handleBackButton.bind(this);
}
async componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.onHandleBackButton);
}
handleBackButton() {
console.log("back button - dashboard")
if (this.backCount == 1) {
BackHandler.exitApp();
this.backCount = 2;
return; // exit
}
else if (this.backCount == 0) {
Toast.show("Press again to exit", Toast.SHORT);
this.backCount++;
setTimeout(() => {
if (this.backCount != 2)
this.backCount = 0;
}, 2000)
return true;
}
}
Код для экрана уведомлений -
constructor(props) {
super(props);
this.onHandleBackButton = this.handleBackButton.bind(this);
}
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.onHandleBackButton);
}
handleBackButton() {
Actions.pop();
return true;
}
Я пробовал несколько способов с type = {ActionConst.RESET} и другими.