You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Fitness API在活动不可见时返回TIMEOUT的问题求助

排查Google Fitness API后台获取步数的超时问题

我最近在测试Google Fitness API来获取用户当日步数,所有权限申请和授权流程都已经搞定了,但碰到了一个和App活动状态绑定的奇怪问题:

  • 当App处于前台可见状态时,API调用完全正常,能成功拿到步数数据,日志输出如下:

Timer TASKDailyTotalResult{status=Status{statusCode=SUCCESS, resolution=null}, dataPoint=DataSet{d:step_count.delta:gms:aggregated [RawDataPoint{[12874]@1518402875448000000, 1518448273927981240}]}}

  • 可一旦App切换到后台不可见状态,API调用就会直接返回TIMEOUT,日志只显示截断的内容:

Timer TASKDailyTotalResult{status=Status{st...

针对这个后台超时的问题,我整理了几个可行的排查和解决方向:

  • 适配系统后台调度规则:Android系统对后台网络请求有严格的限制,尤其是Doze模式或App standby状态下,网络请求会被系统延迟甚至阻断。建议使用WorkManager来调度后台的API请求,它会自动适配系统的调度策略,确保请求在允许的时机执行。
  • 调整超时时间配置:后台环境下的网络稳定性通常不如前台,你可以尝试适当延长API请求的超时时间,给请求更多的完成窗口。
  • 使用前台服务提升优先级:如果你的功能需要持续在后台获取步数数据,可以把API请求放在前台服务中执行。前台服务拥有更高的系统优先级,不容易被系统限制资源或杀死。
  • 增加本地缓存策略:在App前台正常获取到步数数据时,把数据缓存到本地(比如SharedPreferences或Room数据库),后台需要使用时直接读取缓存,避免频繁发起网络请求。

内容的提问来源于stack exchange,提问作者nav_jan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:51:48