Android快应用开发3:生命周期

    本篇主要了解页面的生命周期与app的生命周期。


页面的生命周期

    页面的声明周期包括:onInit()、onReady()、onShow()、onHide()、onDestroy()。(页面是通过ViewModel渲染,所以生命周期指的也就是ViewModel的生命周期,不过这个小弟还没研究过,这里就不解释了,后面等我研究好了在单独写一篇博客讲ViewModel这个)

页面创建的时候会调用onInit()、onReady()、onShow()这三个,于是我们就可以在方法里面进行一些初始化的操作。


onShow()和onHide():

在页面切换的时候会调用,被隐藏的页面会调用onHide(),跳转到的页面会调用onShow(),再返回上一个页面时,上一个页面也会调用onShow()。

onDestroy():

在页面销毁的时候调用,当用户在当前页面返回,此页面就会被销毁,或者打开页面太多,框架自动销毁掉部分页面,避免占用资源

另外,还有两个方法,我也不确定这两个是不是生命周期,感觉更像两个监听方法onBackPress()和onMenuPress()。

onBackPress():

用户按返回键时调用,默认是返回上一页,我们也可以拦截此方法,return true;然后自己处理业务逻辑,最后自行调用api接口返回。

onMenuPress():

用户点击标题栏右上角的菜单时调用,菜单的配置在manifest中。


APP的生命周期

    app的生命周期有两个:onCreate(), onDestroy(),在app.ux中定义,分别在应用创建和销毁时调用。


在app.ux中定义的方法可以给其它页面调用。

在app.ux中,通过this.方法访问app.ux中定义的数据和方法,如下图:


在其它页面中,通过this.$app.方法访问app.ux中定义的数据和方法,比如调用创建快捷方式的方法:



关于$app与$app.$def :

$app与$app.$def(后面简称$def)是两个不同的对象;
前者代表框架为开发者暴露提供的APP对象;后者代表开发者在app.ux中导出的对象,放置业务相关的全局数据和方法;
前者对象拥有onCreate, onDestroy生命周期;当应用启动时会执行onCreate方法,里面执行this.variable1的赋值是在$app对象上;
后者对象中的onCreate, onDestroy方法并不会执行,作用仅仅只是把方法复制到前者对象上而已;
这些全局方法在页面中:既可以通过this.$app.method1()调用,也可以通过this.$app.$def.method1()调用;不同之处在于前者可以取到之前赋值的variable1变量,而后者不可以取到(因为之前的赋值是在$app对象上执行的);


总结
    理解页面与APP的生命周期,有助于更好的组织页面的业务逻辑,方便页面之间的交互与资源释放等的处理。


猜你喜欢

转载自blog.csdn.net/Johnsco/article/details/80040507