HarmonyOS App開發(fā)之頁(yè)面周期和配置文件(一)

image.png

一舶胀、在HarmonyOS上運(yùn)行的應(yīng)用,有兩種形態(tài):

    -傳統(tǒng)方式的需要安裝的應(yīng)用。
    -提供特定功能懒棉,免安裝的應(yīng)用(即原子化服務(wù))。

二览绿、配置文件cnfig.json

 "distro": {
     "deliveryWithInstall": true,
     "moduleName": "entry",
     "moduleType": "entry",
     "installationFree": false  
   },

**installationFree**
表示當(dāng)前該FA是否支持免安裝特性策严。
true:表示支持免安裝特性,且符合免安裝約束饿敲。
false:表示不支持免安裝特性妻导。手機(jī)上需要安裝app   

三、Java開發(fā)模式下Abitity和AbilitySlice的生命周期

在HarmonyOS中的Ability(可類比成Android的Activity) 和AbilitySlice(可類比成Android中的Fragment)是頁(yè)面的基本單元怀各,用戶操作或系統(tǒng)管理等行為均會(huì)引起頁(yè)面實(shí)例在其生命周期的不同狀態(tài)之間進(jìn)行轉(zhuǎn)換 倔韭。

頁(yè)面(Ability)生命周期回顧

image.png

- onStart()

當(dāng)系統(tǒng)首次創(chuàng)建Page實(shí)例時(shí),觸發(fā)該回調(diào)瓢对。對(duì)于一個(gè)Page實(shí)例寿酌,該回調(diào)在其生命周期過(guò)程中僅觸發(fā)一次,Page在該邏輯后將進(jìn)入INACTIVE狀態(tài)硕蛹。開發(fā)者必須重寫該方法醇疼,并在此配置默認(rèn)展示的AbilitySlice。

- onActive() 類似Android中的onResume()

Page會(huì)在進(jìn)入INACTIVE狀態(tài)后來(lái)到前臺(tái)法焰,然后系統(tǒng)調(diào)用此回調(diào)秧荆。Page在此之后進(jìn)入ACTIVE狀態(tài),該狀態(tài)是應(yīng)用與用戶交互的狀態(tài)埃仪。Page將保持在此狀態(tài)乙濒,除非某類事件發(fā)生導(dǎo)致Page失去焦點(diǎn),比如用戶點(diǎn)擊返回鍵或?qū)Ш降狡渌鸓age贵试。當(dāng)此類事件發(fā)生時(shí)琉兜,會(huì)觸發(fā)Page回到INACTIVE狀態(tài),系統(tǒng)將調(diào)用onInactive()回調(diào)毙玻。此后豌蟋,Page可能重新回到ACTIVE狀態(tài),

- onInactive() 類似Android中的onPause()

當(dāng)Page失去焦點(diǎn)時(shí)桑滩,系統(tǒng)將調(diào)用此回調(diào)梧疲,此后Page進(jìn)入INACTIVE狀態(tài)允睹。開發(fā)者可以在此回調(diào)中實(shí)現(xiàn)Page失去焦點(diǎn)時(shí)應(yīng)表現(xiàn)的恰當(dāng)行為。

- onBackground()

如果Page不再對(duì)用戶可見(jiàn)幌氮,系統(tǒng)將調(diào)用此回調(diào)通知開發(fā)者用戶進(jìn)行相應(yīng)的資源釋放缭受,此后Page進(jìn)入BACKGROUND狀態(tài)。開發(fā)者應(yīng)該在此回調(diào)中釋放Page不可見(jiàn)時(shí)無(wú)用的資源该互,或在此回調(diào)中執(zhí)行較為耗時(shí)的狀態(tài)保存操作米者。

- onStop() 類似Android中的onDestory()

系統(tǒng)將要銷毀Page時(shí),將會(huì)觸發(fā)此回調(diào)函數(shù)宇智,通知用戶進(jìn)行系統(tǒng)資源的釋放蔓搞。銷毀Page的可能原因包括以下幾個(gè)方面:

  • 用戶通過(guò)系統(tǒng)管理能力關(guān)閉指定Page,例如使用任務(wù)管理器關(guān)閉Page随橘。
  • 用戶行為觸發(fā)Page的terminateAbility()方法調(diào)用喂分,例如使用應(yīng)用的退出功能。
  • 配置變更導(dǎo)致系統(tǒng)暫時(shí)銷毀Page并重建机蔗。
  • 系統(tǒng)出于資源管理目的蒲祈,自動(dòng)觸發(fā)對(duì)處于BACKGROUND狀態(tài)Page的銷毀。

AbilitySlice生命周期

AbilitySlice作為Page的組成單元萝嘁,其生命周期是依托于其所屬Page生命周期的梆掸。AbilitySlice和Page具有相同的生命周期狀態(tài)和同名的回調(diào),當(dāng)Page生命周期發(fā)生變化時(shí)酿愧,它的AbilitySlice也會(huì)發(fā)生相同的生命周期變化沥潭。

當(dāng)頁(yè)面page中發(fā)生了AbilitySlice的導(dǎo)航切換時(shí),它的生命周期變化將獨(dú)立于頁(yè)面的生命周期變化

AbilitySlice生命周期回調(diào)與Page的相應(yīng)回調(diào)類似嬉挡。由于AbilitySlice承載具體的頁(yè)面钝鸽,開發(fā)者必須重寫AbilitySlice的onStart()回調(diào),并在此方法中通過(guò)setUIContent()方法設(shè)置頁(yè)面庞钢,如下所示:

 @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);

        setUIContent(ResourceTable.Layout_main_layout);
    }

舉個(gè)例子: 同一個(gè) Abil的兩個(gè)Slice之間的跳轉(zhuǎn) A->B 的生命周期

1 A->B(A頁(yè)面進(jìn)入到B頁(yè)面)
B中的生命周期:


QQ截圖20210608152115.png

2 B->A (B頁(yè)面返回到A頁(yè)面)
B的生命周期:


image.png

3 B頁(yè)面切換至后臺(tái)


image.png

4 B頁(yè)面從后臺(tái)切換至前臺(tái)


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拔恰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子基括,更是在濱河造成了極大的恐慌颜懊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件风皿,死亡現(xiàn)場(chǎng)離奇詭異河爹,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)桐款,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門咸这,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人魔眨,你說(shuō)我怎么就攤上這事媳维∧鹧” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵侄刽,是天一觀的道長(zhǎng)指黎。 經(jīng)常有香客問(wèn)我,道長(zhǎng)州丹,這世上最難降的妖魔是什么醋安? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮当叭,結(jié)果婚禮上茬故,老公的妹妹穿的比我還像新娘盖灸。我一直安慰自己蚁鳖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布赁炎。 她就那樣靜靜地躺著醉箕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪徙垫。 梳的紋絲不亂的頭發(fā)上讥裤,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音姻报,去河邊找鬼己英。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吴旋,可吹牛的內(nèi)容都是我干的损肛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼荣瑟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼治拿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起笆焰,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劫谅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后嚷掠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捏检,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年不皆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贯城。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粟焊,死狀恐怖冤狡,靈堂內(nèi)的尸體忽然破棺而出孙蒙,到底是詐尸還是另有隱情,我是刑警寧澤悲雳,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布挎峦,位于F島的核電站,受9級(jí)特大地震影響合瓢,放射性物質(zhì)發(fā)生泄漏坦胶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一晴楔、第九天 我趴在偏房一處隱蔽的房頂上張望顿苇。 院中可真熱鬧,春花似錦税弃、人聲如沸纪岁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)幔翰。三九已至,卻和暖如春西壮,著一層夾襖步出監(jiān)牢的瞬間遗增,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工款青, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留做修,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓抡草,卻偏偏與公主長(zhǎng)得像饰及,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渠牲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容