У меня есть код, который я хочу запустить, когда мое приложение возобновит работу из фона.С этой целью я регистрирую событие, используя AppState.addEventListener ().
const handleAppStateChange = () => {
console.log('Do stuff')
}
constructor(props: Props) {
super(props)
AppState.addEventListener('change', this.handleAppStateChange)
}
componentWillUnmount() {
AppState.removeEventListener('change', this.handleAppStateChange)
}
Когда я обычно выхожу из приложения и возобновляю его работу, оно, однако, печатает «делать вещи», как и ожидалось (и здесь возникает проблема), когда приложение свернуто, и я нажимаю на уведомление, приложение напечатает «Делать вещи» дважды.
Я понял, что это потому, что когда я нажимаю на уведомление, оно, кажется, перезапускает приложение (включая часть конструктора), что означает, что оно создает второй прослушиватель событий ...
Итак, кто-нибудь знает, почему он это делает, когда нажимает на уведомление, и могу ли я предотвратить его (используя плагин реагировать-на-push-уведомления), или, альтернативно, если есть способ, которым я могу гарантировать, что повторяющиеся события не регистрируются?
Это происходит на моем физическом устройстве Android, но я не уверен, что это проблема с iOS, но просто подумал, что я проверю, знает ли кто-нибудь, возможно ли это)