React Native 0.71.6 后台定位时偶被系统终止问题求助
定位追踪应用后台被系统终止问题求助
我的定位追踪应用88%的情况下运行正常,能以极低耗电量记录一整天的连续定位数据。但约12%的场景下,应用在后台运行时会被操作系统终止,终止时机无明显规律,通常发生在追踪会话启动至少1小时后,该问题在iOS和Android平台均会出现,占比相近。
Android端情况
Android使用自定义粘性前台服务(type: location),应用申请了Location: When In Use权限。主要应用退出代码占比如下:
- REASON_SIGNALED: 13%
- REASON_LOW_MEMORY: 18%
- REASON_EXCESSIVE_RESOURCE_USAGE: 9%
- REASON_OTHER: 37%
大部分REASON_OTHER案例的描述为Too many empty、Empty #34或Empty for too long,我不清楚这些描述的含义。终止无明显规律,即使在Pixel设备上设置应用电池使用为Unrestricted时也会发生。
iOS端情况
iOS使用自定义原生模块,项目已启用定位后台模式,应用申请了Location: When In Use权限。XCode Organizer显示超90%的终止原因是System Pressure,我认为实际是内存压力。我知道申请Location: Always权限并使用Significant Location服务可帮助重启应用,但我不愿申请该权限。
疑似内存问题排查方向
我的直觉是应用在后台占用过多内存,但不知如何降低内存占用。一个Hello World React Native应用约占用200MB,我的应用约占用300MB。我想知道:
- 在Android端结束主Activity是否能有效关闭RN部分,仅保留原生服务运行以降低内存占用?
- iOS端对应的操作是什么?
现求助:是否有人能提供排查或修复该问题的建议?
内容的提问来源于stack exchange,提问作者Brad Stiff
相关产品推荐
相关产品推荐

