小程序前后台切换运行机制

首先微信官方文档有涉及一部分内容

https://developers.weixin.qq.com/miniprogram/dev/framework/operating-mechanism.html

点此跳转到微信官方文档


微信的方法
  • onShow() 页面显示/切入前台时触发。
  • onHide() 页面隐藏/切入后台时触发。 如 wx.navigateTo 或底部 tab 切换到其他页面,小程序切入后台等
前台、后台定义:

当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁

一个page的生命周期从onLoad开始,整个生命周期内onLoad、onReady、onUnload这三个事件仅执行一次,而onHide和onShow在每次页面隐藏和显示时都会触发。当用户手动触发左上角的退出箭头时,小程序仅触发app.onHide,下次进入小程序时会触发app.onShow以及当前page.onShow。仅当小程序在后台运行超过一定时间未被唤起、或者用户手动在小程序的控制栏里点击退出程序、或者小程序内存占用过大被关闭时,小程序被销毁,会触发app.onUnload事件。
一个完整的小程序执行的生命周期如下:
在这里插入图片描述
在这里插入图片描述

那么 跳出小程序,如何关闭后台运行?

每次关闭小程序,重新进入,不是进入主页面,而是我离开小程序时的页面。这个给我们的小程序造成了困扰~~如何实现真正退出小程序(点击左上角的关闭,下次进入是重新加载,进入主页面,而不是缓存页面~),求解

官方回答:

目前没有提供这样的能力。

有一个这样的想法:

判断小程序在全局方法中 判断 isOnHide() 也就是是否切换到后台, 如果切换到后台, 就调用定时器执行 某个方法. 如果回到 onShow() 也就是回到前台 ,就停止调用这个定时器. 以此来执行 某些在后台想要执行的代码: 比如需要在后台定时更新某些值. 有待验证;

参考资料:

http://www.wxapp-union.com/thread-3279-1-1.html
https://www.cnblogs.com/xiaohouzai/p/7674721.html

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫长的~以后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值