React Native Android 11+点击推送通知致APP重载问题求助
Android 11+点击通知重载App的原因分析
1. Activity启动模式配置错误
Android 11+收紧了后台启动Activity的规则,你的MainActivity如果启动模式配置不对,就会触发App重载:
- 要是设成
standard,每次点通知都会新建Activity实例,看起来就是App重载; - 就算设了
singleTask,但没在onNewIntent里处理通知的Intent,系统还是可能重新创建Activity。 - 另外RN 0.68+要求Activity必须加
android:exported="true",没加的话系统处理通知启动时会出异常,间接导致重启。
2. react-native-notification的PendingIntent配置问题
你用的^5.1.0版本可能在Android 11+上有兼容性问题:
- 后台状态下,通知的PendingIntent没设置正确的标志,比如缺了
FLAG_UPDATE_CURRENT或者FLAG_IMMUTABLE(Android 12+必须用这俩之一),导致Intent无法复用,只能启动新的App实例; - 库本身的Intent传递逻辑有问题,没把通知数据传给后台的App实例,反而触发了全新启动。
3. RN 0.72.7的生命周期适配缺失
RN 0.72基于Android 13 SDK,要是MainActivity没重写onNewIntent方法来接收通知Intent,系统会默认重新初始化App:
- 默认的RN MainActivity没处理这个方法,后台的App实例接不到通知的Intent,系统就会认为需要重建App来处理。
4. 推送Payload数据异常
如果通知带的payload数据太大,或者包含Android 11+限制的敏感内容,系统传递Intent时会出问题,进而导致App重启来处理错误数据。
内容的提问来源于stack exchange,提问作者Pulasthi Aberathne
相关产品推荐
相关产品推荐

