小程序App生命周期
- 小程序App生命周期是在app.js里面调用的,App(Object)函数用来注册一个小程序,接受一个
Object 参数,指定其小程序的生命周期回调
- App() 必须在
app.js 中调用,必须调用且只能调用一次。不然会出现无法预期的后果。
小程序第一次打开时将会下载整个小程序代码包,紧接着通过app.json配置初始化App,页面线程开始渲染首页,初始化完成后应用服务线程执行App中onLauch() 函数和onShow() 函数,然后才执行页面中的onLoad() 函数和onShow() 函数,每次进入后台(当用户点击左上角关闭,或者按了设备 Home 键离开微信)都会先执行页面中的onHide() 函数再执行app.js中的onHide() 函数,每次进入前台都会先执行app.js中onShow() 函数再执行页面中的onShow() 函数。
总结一下过程:
打开小程序 -> app.onLaunch -> app.onShow -> Page.onLoad -> Page.onShow -> Page.onReady
小程序运行机制
前台/后台状态
- 小程序启动后,界面被展示给用户,此时小程序处于前台状态。
- 当用户点击右上角胶囊按钮关闭小程序,或者按了设备 Home 键离开微信时,小程序并没有完全终止运行,而是进入了后台状态,小程序还可以运行一小段时间。
- 当用户再次进入微信或再次打开小程序,小程序又会从后台进入前台。但如果用户很久没有再进入小程序,或者系统资源紧张,小程序可能被销毁,即完全终止运行。
小程序启动
这样,小程序启动可以分为两种情况,一种是冷启动 ,一种是热启动 。
- 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。
(此时小程序需要重新加载启动onLauch)
- 热启动:如果用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。
(onShow)
小程序销毁时机
- 当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间后
(目前是5分钟) 会被微信主动销毁
- 在 iOS 上,当微信客户端在一定时间间隔内(目前是 5 秒)连续收到两次及以上系统内存告警时,会主动进行小程序的销毁,并提示用户 「该小程序可能导致微信响应变慢被终止」。建议小程序在必要时使用 wx.onMemoryWarning 监听内存告警事件,进行必要的内存清理。
|
请发表评论