1. 小程序生命周期
小程序从启动到最终被销毁,会经历多种状态,不同状态下表现不同。
1.1 小程序启动
小程序会有两种情况,一种是冷启动
,一种是热启动
;
热启动:指用户在一定时间后想要重新打开已打开的小程序时,将后台
运行的小程序切换到前台
的过程。
冷启动:当用户第一次打开小程序或被宿主应用主动销毁后重新打开小程序,此时小程序需要重新加载启动,即冷启动。
1.2 前台/后台状态
小程序启动后,用户直接可以看到小程序的界面,此时小程序处于前台
状态。
当用户单击右上角的小程序控制按钮「关闭」小程序或按手机上的 Home 键离开宿主应用时,小程序没有被销毁,而是在后台
运行, 此时小程序还可以短暂运行一小段时间,但部分 API 的使用会受到限制。
切换到后台
的方式包括但不限于以下几种:
点击右上角胶囊按钮离开小程序;
iOS 从屏幕左侧右滑离开小程序;
安卓点击返回键离开小程序;
小程序前台运行时直接把宿主应用切换到后台(手势或 Home 键);
小程序前台运行时直接锁屏。
当用户再次进入客户端并打开小程序时,小程序将从后台
运行到前台
。
1.3 小程序销毁机制
如果用户很久没有使用小程序,或者系统资源紧张,小程序会被「销毁」,即完全终止运行。具体而言包括以下几种情形:
当小程序进入后台并被「挂起」后,如果很长时间(目前是 30 分钟)都未再次进入前台,小程序会被销毁。
当小程序占用系统资源过高,可能会被系统销毁或被宿主应用主动回收。
在 iOS 系统上,当宿主应用在一定时间间隔内连续收到系统内存告警时,会根据一定的策略,主动销毁小程序,并提示用户运行内存不足,请重新打开该小程序
。
具体策略会持续进行调整优化。
2. 小程序打开逻辑
2.1 冷启动打开页面
小程序冷启动时,打开的页面有以下情况;
若启动的场景不带 path, 则进入首页;
若启动的场景带 path,则启动进入对应 path 的页面。
2.2 热启动打开页面
小程序热启动时,打开的页面有以下情况;
若启动的场景中不带 path,则保留上次的浏览的状态;
若启动的场景中带有 path,则启动进入到对应 path 的页面。
本页内容是否解决了您的问题?