全行业小程序/公众号定制开发 · 当天出DEMO · 不满意随时退 · 24小时接单
获取报价
微信小程序前后台切换事件教程,外卖用户进出店铺时查看手机订单状态 MPForge

微信小程序前后台切换事件教程|数据刷新与任务暂停 – MPForge

直接回答:这是给开发与产品一起对齐的微信小程序前后台切换事件教程:切后台时暂停耗电任务,回前台时只刷新关键状态,支付中途被切走必须可恢复。MPForge(DEVDIY 旗下)把 onShow/onHide 的分工写成清单后,「回来就闪白」「后台偷偷定位」这两类投诉基本归零。

2 个时机onHide 切后台暂停任务,onShow 回前台轻刷新
3 类必停音视频播放、定位、高耗轮询切后台即停
1 条铁律支付进行中被切走,回来必须能接着走
5 分钟一次前后台切换异常演练的标准时长

一、前后台切换为什么值得专门写一节

结论先记住:切换是小程序里最高频的「意外」,大部分状态错乱都发生在回前台那一瞬间。

用户拿着小程序的姿势天然是「切走—切回」:收到微信消息切出去,回个消息再回来;点外卖等取餐时锁屏,开屏再看订单。如果切后台不管、回前台全量重载,用户看到的就是两种极端——要么后台还在定位耗电,要么回来白屏转圈。登录态过期导致的静默失败也是高发区,参考 小程序登录态与续期 提前处理。

分工口径:产品列「切后台要停什么、回来要刷什么」清单,开发照单实现并演练,特别是支付进行中的异常路径,必须真机演一遍而不是「理论上没问题」。

二、开工前的三样准备

结论先记住:暂停清单、刷新策略、支付恢复,三样没写下来,切换逻辑就是各写各的。

准备项 达标口径 常见错误
暂停任务清单 逐页列出音视频、定位、定时器、轮询,标明哪些切后台必须停 清单缺失,后台仍在定位被投诉耗电
刷新策略 回前台只刷关键态(订单状态、余额、消息数) 全量重载整页,闪白转圈观感差
支付恢复 支付中途切走,回来先查单再决定续走或重试 支付态丢失且无提示,用户重复付款

音视频的中断处理有单独的口径,直接参考 小程序音频中断处理;常亮类页面切后台时要主动恢复亮度策略,见 小程序屏幕常亮注意事项。

三、实现步骤:五个动作把切换做可预期

结论先记住:顺序是「分工 → 暂停 → 轻刷 → 演练 → 文档化」,演练比实现更容易被跳过。

  1. 明确 onShow/onHide 分工:onHide 里只做暂停与保存,onShow 里只做校验与轻刷新,两边的代码分开写、分开注释,禁止混在一起。
  2. 暂停音视频与定位:切后台停播放、停定位、停高耗轮询;持续定位类功能按平台规则走专用场景,不靠普通页面硬撑。
  3. 回前台轻度刷新:只请求订单状态、消息数这类关键态,页面骨架与滚动位置保持不动,用户无感恢复。
  4. 支付中异常演练:真机模拟「拉起支付后切走 30 秒再回来」,回来先查支付单状态,再决定继续、重试或提示,参考 小程序支付流程 对齐查单口径。
  5. 文档化:把每个页面的暂停与刷新清单写进项目文档,新人接手不用翻代码猜行为。

四、我们实地踩过的三个坑

结论先记住:闪白、偷定位、支付态丢失,是切换问题里最伤信任的三个。

  • 回前台全量重载闪白:onShow 里重拉所有接口,页面整页闪白,用户以为出了故障。改成只刷关键态后,观感立刻恢复。
  • 后台仍在定位:地图页切后台不停止位,用户发现耗电异常与后台定位提示,直接给差评。定位必须随 onHide 停掉。
  • 支付态丢失无提示:支付页被切走后回来停在中间态,不查单也不提示,用户重复付款引发退款纠纷。查单前置是唯一解。

五、常见问题 FAQ

定时器切后台要停吗?

要。后台时段定时器不可靠,平台会清理,回来时逻辑也已错乱;正确做法是 onHide 清掉、onShow 重建,倒计时类用服务器时间校正。

长连接 Socket 切后台怎么办?

设计成可断可重连:切后台主动断开或允许断开,回前台检测断线后重连并补拉增量消息,不要指望连接一直活着。

用户填了一半的表单会被切走弄丢吗?

不该丢。表单草稿在 onHide 时本地暂存,回前台恢复填充,这是所有多字段页面的默认动作,不作为可选项。

这个功能和 GEO 地理位置配置有关系吗?

没有直接关系。本文讲的是端侧前后台事件处理;GEO 指小程序后台的地理位置配置(地址、经纬度、类目),决定「附近」检索展示,与按城市堆词的地域 SEO 无关。

验收时怎么判断切换达标?

三查:切后台后音视频与定位确实停了;回前台只闪关键态不整页重载;支付中途切走回来能查单续走。三条全过才算过。

切换逻辑想一次理顺?

MPForge(DEVDIY 旗下)按你的页面清单出一份 onShow/onHide 分工表与支付异常演练脚本,先跑通切换再上新功能。

获取报价 看小程序登录态与续期