# 小程序运行机制
根据运行小程序的宿主应用环境不同,小程序也会有不同的启动机制。
# 1. 小程序启动
小程序会有两种情况,一种是冷启动,一种是热启动。
- 冷启动:用户首次打开或小程序被宿主应用主动销毁后再次打开的情况,此时小程序需要重新加载启动,即冷启动。
- 热启动:假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台状态的小程序切换到前台,这个过程就是热启动。
# 2. 前后台状态
小程序启动后,用户直接可以看到小程序的界面,此时小程序处于前台状态。
当用户点击右上角胶囊按钮
关闭小程序,或者按了设备 Home 键
离开宿主应用时,小程序并没有直接销毁,而是进入了后台状态;当用户再次打开客户端或再次打开小程序,小程序又会从后台进入前台。
# 3. 小程序销毁机制
# 3.1 移动端
通常,只有当小程序进入后台一定时间,或者系统资源占用过高,才会被销毁,移动端小程序的销毁机制如下:
- 当小程序占用系统资源过高,可能会被系统销毁或被客户端主动回收。
- 在 iOS 上,最多允许有 5 个小程序 同时存在,如果超过 5 个会销毁最久未被使用的那个小程序。此外当客户端收到内存告警时,会主动进行所有后台小程序的销毁。
- 在 Android 上,最多允许有 5 个小程序 同时存在,如果超过 5 个会销毁最久未被使用的那个小程序。此外当内存不足时,系统会直接回收内存,销毁后台长时间未使用的小程序。
# 3.2 桌面端
桌面端只要小程序没有关闭,小程序会一直处于运行状态,如果关闭了,会直接销毁。
# 4. 小程序打开逻辑
小程序冷启动页面打开逻辑较好理解,热启动较复杂,因为可能会自动产生一些跳转。
根据不同的启动参数,这些跳转可以归纳为:
指定页面或参数不同 | 效果 |
---|---|
是 | 清空原来的页面栈,打开指定页 |
否 | 保留原先状态 |