帖子
- bigkele2026-07-2021459
我们公司正在做一个安卓的app给护工使用,护工上门给客户服务时根据工单需要签到打卡,签到成功后会生成三条随机的人脸验证计划,接口会返给前端,前端按照计划的时间执行定时任务,比如早上八点签到成功,然后生成第一条人脸抽查8点50 ,那么app定时任务会在8点50手机铃声+振动+通知栏有人脸验证的消息,打开app会弹出人脸验证的按钮,第二条比如9点40,第三条比如10点30,现在问题是手机已经打开通知功能,但是基本都不会按时执行,app在后台运行息屏后手机放一边没有使用,比如第一条8点50 可能会8点52才会提醒,可能第二条到9点40后不提醒过几分还是没提示,但是只要打开手机提醒马上就出来,这是咋回事,各位佬有什么办法能解决app后台运行及时提醒的问题吗
主楼 - Unic2026-07-209782
本质是 Android 的 Doze 模式 + App Standby + 厂商激进省电策略导致的。
问题根因
当手机息屏且一段时间没动时,系统会进入 Doze 模式:
- 普通
AlarmManager.set()/setExact()会被推迟到下一个维护窗口-
Handler、Timer、WorkManager、Coroutine delay等全部不可靠- 即使你开了通知权限,系统也会把通知“攒着”,等屏幕亮起/用户操作时才真正弹出
- 国产机(小米、华为、OPPO、vivo、荣耀等)还会额外杀后台,比原生 Android 更狠




- 狗王2026-07-2028332
你这像是安卓的省电机制把任务延后了, 看一下你们用的是alarmmanager、workmanager还是普通handler/定时线程, 如果你们用的是workmanager、普通定时器、协程delay、后台线程,甚至只是setexact(),息屏静置后都可能被doze推迟;亮屏时系统退出doze,所以积压任务立刻冒出来,可以用adb复现测试一下
- bigkele2026-07-2021459
感谢,上面的方法基本上都尝试了,还是无法解决手机锁屏导致延迟
- Unic2026-07-209782