博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓开发者的小程序入门整理 页面跳转&生命周期
阅读量:7103 次
发布时间:2019-06-28

本文共 1205 字,大约阅读时间需要 4 分钟。

写在前面

  • 小程序文档对于生命周期没有一个很直观的解答
  • 加上小程序入口实在是又杂又多 关闭逻辑也不是很直观
  • 所以挑出来记录一下

页面的生命周期

页面主要的生命周期函数有

onLoad onReady onShow onHide onUnload
下面讲根据几种不同的跳转方式看他们依次是怎么调用的

wx.navigateTo

A -> B

wx.redirectTo

A -> B

wx.navigateBack

A -> B -> C -> A (delta = 2)

以上看上去都没有什么问题

现在我在B里添加一个变量i初始为0
每跳转一次自增并在onShow里面打印出来

代码如下

var TAG = "Page B "    var i = 0    Page({      onclick: function () {        i++        wx.navigateTo({          url: '../C/C',          success: function (res) { },          fail: function (res) { },          complete: function (res) { },        })      },      onLoad: function (options) {        console.log(TAG + "onLoad" + "  i = " + i)      },复制代码

A -> B -> C -> A -> B

这里的i是1而不是0

这个和安卓Activity的逻辑明显不一致
其实小程序的所有页面的初始变量在小程序生存时就已经初始化了
而在在之后的操作中除非整个小程序挂掉
是不会再有二次初始化的
为了绕开这个问题导致别的莫名其妙建议所有的变量都在onLoad中进行初始化

小程序页面生命周期

这里主要选择 onLaunch onShow onHide 来进行总结

点击Home键(IDE上的切后台)

其中打印的那条JSON是
onShow带过来的 包含了路径和场景值
(场景值是一个很重要的概念 )
开发过程中会发现返回键、右上角的关闭、分享 都是这套逻辑
对。右上角的关闭也是
回到后台
那小程序真正意义上的关闭又是如何执行的呢
这里选用 去讲
运行机制

小程序没有重启的概念

当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间后
(目前是5分钟)会被微信主动销毁
当短时间内(5s)连续收到两次以上收到系统内存告警,会进行小程序的销毁

再次打开逻辑

小程序判定是否二次重载很大程度上是根据场景值去判定

这个逻辑和Native App也是不一样的
个人的解决方案是在 App.jsonShow
里根据自己的产品逻辑去对特定情况场景值进行判定操作
(也是挺坑)

转载地址:http://swyhl.baihongyu.com/

你可能感兴趣的文章
dubbo入门(1)——dubbo-demo
查看>>
聊聊SpringMVC(2)---SpringMVC之请求过程
查看>>
大型网站运维探讨和心得(转载)
查看>>
内网IP和外网IP的区别【图解】
查看>>
PHP 页面跳转的三种方式
查看>>
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
查看>>
nginx配置https的部署实践
查看>>
Java 集合 List CopyOnWriteArrayList
查看>>
ganache-cli默认network id是什么?
查看>>
Django简单介绍和用户访问流程和项目示例
查看>>
阿里云 Aliplayer高级功能介绍(三):多字幕
查看>>
Data Lake Analytics账号和权限体系详细介绍
查看>>
Spring 定时任务
查看>>
考虑自定义的序列化模式(75)
查看>>
11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间
查看>>
文档查看cat_more_less_head_tail
查看>>
jdk8重新认识hashmap
查看>>
Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka
查看>>
Visual Paradigm 教程[UML]:如何绘制封装图?(下)
查看>>
初探AngularJS6.x---目录结构说明
查看>>