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的生命週期,有助於更好的組織頁面的業務邏輯,方便頁面之間的交互與資源釋放等的處理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章