我的团队正在开发一个本机(0.59.10)应用程序,该应用程序目前正在封闭测试中。我们面临的问题是,有时候应用程序从后台返回后,有时我们所有的API请求(使用https://github.com/axios/axios 0.18发出)对于某些Android用户来说都会超时。它不会每次都发生,并且据我们所知是随机的。这很可能不是由于Doze引起的,因为在积极使用设备时有时会发生此问题,即使只是将应用程序发送至后台再返回时也是如此。
每当应用程序从后台更改为前景时,我们都在使用https://github.com/rgommezz/react-native-offline来检查互联网连接,并且据应用程序所知,通常存在互联网连接。关闭应用程序并重新启动它可以解决此问题,因此我们可以排除实际的互联网连接问题。
有趣的是,我们发现如果没有为请求配置超时,那么实际上它们可能会在长达4分钟的时间内通过!
到目前为止,我们能够确认的问题均在启用了省电功能的Android 9设备上进行。
每当应用程序出现在前台时,我们都尝试重新创建Axios实例,但无济于事。
我们还尝试过重做一些API调用,以便它们使用访存而不是Axios,但问题仍然存在。值得注意的是,Axios有一个错误导致它在某些情况下无论配置如何都永不超时(我们最近才发现并实施了解决方法,但主要问题仍然存在)。但是,抓取实际上会引发超时错误。
我们无法在启用了省电功能且电量不足(10%)的Android 9模拟器上,或在其他Android物理设备上重现此错误。
任何想法都值得欢迎!