当我的应用程序从后台恢复时,我有想要运行的代码。为此,我使用 AppState.addEventListener() 注册了一个事件。
const handleAppStateChange = () => {
console.log('Do stuff')
}
constructor(props: Props) {
super(props)
AppState.addEventListener('change', this.handleAppStateChange)
}
componentWillUnmount() {
AppState.removeEventListener('change', this.handleAppStateChange)
}
当我通常退出应用程序并恢复时,它会按预期打印“做事”,但是(这是问题所在),当应用程序最小化并点击通知时,应用程序将打印两次“做事”。
我发现这是因为当我点击通知时,它似乎重新运行了应用程序(包括构造函数部分),这意味着它创建了第二个事件侦听器......
那么,有没有人知道为什么在点击通知时会这样做以及我是否可以阻止它(使用 react-native-push-notification 插件),或者是否有办法确保不注册重复事件?
这发生在我的 Android 物理设备上,不确定这是否也是 iOS 问题,但只是想我会检查是否有人知道这是否可能)