Ability
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、興慶ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的興慶網(wǎng)站制作公司
Ability是應(yīng)用所具備能力的抽象
2.onActive()
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),系統(tǒng)將再次調(diào)用onActive()回調(diào)。因此,開(kāi)發(fā)者通常需要成對(duì)實(shí)現(xiàn)onActive()和onInactive(),并在onActive()中獲取在onInactive()中被釋放的資源。
3.onInactive()
當(dāng)Page失去焦點(diǎn)時(shí),系統(tǒng)將調(diào)用此回調(diào),此后Page進(jìn)入INACTIVE狀態(tài)。開(kāi)發(fā)者可以在此回調(diào)中實(shí)現(xiàn)Page失去焦點(diǎn)時(shí)應(yīng)表現(xiàn)的恰當(dāng)行為。
4.onBackground()
如果Page不再對(duì)用戶可見(jiàn),系統(tǒng)將調(diào)用此回調(diào)通知開(kāi)發(fā)者用戶進(jìn)行相應(yīng)的資源釋放,此后Page進(jìn)入BACKGROUND狀態(tài)。開(kāi)發(fā)者應(yīng)該在此回調(diào)中釋放Page不可見(jiàn)時(shí)無(wú)用的資源,或在此回調(diào)中執(zhí)行較為耗時(shí)的狀態(tài)保存操作。
5.onForeground()
處于BACKGROUND狀態(tài)的Page仍然駐留在內(nèi)存中,當(dāng)重新回到前臺(tái)時(shí)(比如用戶重新導(dǎo)航到此Page),系統(tǒng)將先調(diào)用onForeground()回調(diào)通知開(kāi)發(fā)者,而后Page的生命周期狀態(tài)回到INACTIVE狀態(tài)。開(kāi)發(fā)者應(yīng)當(dāng)在此回調(diào)中重新申請(qǐng)?jiān)趏nBackground()中釋放的資源,最后Page的生命周期狀態(tài)進(jìn)一步回到ACTIVE狀態(tài),系統(tǒng)將通過(guò)onActive()回調(diào)通知開(kāi)發(fā)者用戶。
6.onStop()
系統(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生命周期回調(diào)與Page的相應(yīng)回調(diào)類似,因此不再贅述。由于AbilitySlice承載具體的頁(yè)面,開(kāi)發(fā)者必須重寫(xiě)AbilitySlice的onStart()回調(diào),并在此方法中通過(guò)setUIContent()方法設(shè)置頁(yè)面。
Page與AbilitySlice生命周期關(guān)聯(lián)
當(dāng)AbilitySlice處于前臺(tái)且具有焦點(diǎn)時(shí),其生命周期狀態(tài)隨著所屬Page的生命周期狀態(tài)的變化而變化。當(dāng)一個(gè)Page擁有多個(gè)AbilitySlice時(shí),例如:MyAbility下有FooAbilitySlice和BarAbilitySlice,當(dāng)前FooAbilitySlice處于前臺(tái)并獲得焦點(diǎn),并即將導(dǎo)航到BarAbilitySlice,在此期間的生命周期狀態(tài)變化順序?yàn)椋?/p>
對(duì)應(yīng)兩個(gè)slice的生命周期方法回調(diào)順序?yàn)椋?/p>
FooAbilitySlice.onInactive() -- BarAbilitySlice.onStart() -- BarAbilitySlice.onActive() -- FooAbilitySlice.onBackground()
在整個(gè)流程中,MyAbility始終處于ACTIVE狀態(tài)。但是,當(dāng)Page被系統(tǒng)銷毀時(shí),其所有已實(shí)例化的AbilitySlice將聯(lián)動(dòng)銷毀,而不僅是處于前臺(tái)的AbilitySlice。
Intent
Intent是對(duì)象之間傳遞信息的載體。當(dāng)一個(gè)Ability需要啟動(dòng)另一個(gè)Ability時(shí),或者一個(gè)AbilitySlice需要導(dǎo)航到另一個(gè)AbilitySlice時(shí),可以通過(guò)Intent指定啟動(dòng)的目標(biāo)同時(shí)攜帶相關(guān)數(shù)據(jù)。Intent的構(gòu)成元素包括Operation與Parameters。
Intent的構(gòu)成元素
Operation
Action: 表示動(dòng)作,通常使用系統(tǒng)預(yù)置Action,應(yīng)用也可以自定義Action。例如IntentConstants.ACTION_HOME表示返回桌面動(dòng)作。
Entity:表示類別,通常使用系統(tǒng)預(yù)置Entity,應(yīng)用也可以自定義Entity。例如Intent.ENTITY_HOME表示在桌面顯示圖標(biāo)。
Uri:表示Uri描述。如果在Intent中指定了Uri,則Intent將匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。
Flags:表示處理Intent的方式。例如Intent.FLAG_ABILITY_CONTINUATION標(biāo)記在本地的一個(gè)Ability是否可以遷移到遠(yuǎn)端設(shè)備繼續(xù)運(yùn)行。
BundleName:表示包描述。如果在Intent中同時(shí)指定了BundleName和AbilityName,則Intent可以直接匹配到指定的Ability。
AbilityName: 表示待啟動(dòng)的Ability名稱。如果在Intent中同時(shí)指定了BundleName和AbilityName,則Intent可以直接匹配到指定的Ability。
DeviceId: 表示運(yùn)行指定Ability的設(shè)備ID。
當(dāng)Intent用于發(fā)起請(qǐng)求時(shí),根據(jù)指定元素的不同,分為兩種類型:
如果同時(shí)指定了BundleName與AbilityName,則根據(jù)Ability的全稱(例如,“com.demoapp.FooAbility”)來(lái)直接啟動(dòng)應(yīng)用。
如果未同時(shí)指定BundleName和AbilityName,則根據(jù)Operation中的其他屬性來(lái)啟動(dòng)應(yīng)用。
參考 鴻蒙官方文檔(點(diǎn)擊傳送門) ,做一下流程梳理簡(jiǎn)化,及踩坑記錄
華為將真機(jī)調(diào)試分成物理真機(jī)和遠(yuǎn)程真機(jī)。這里說(shuō)的都是物理真機(jī)(手機(jī)、平板)。鴻蒙真機(jī)調(diào)試巨復(fù)雜,不像Android那么容易方便。
貼一下官方的調(diào)試流程圖:
總結(jié)一下:
上面這個(gè)流程可以忽略,沒(méi)講到重點(diǎn)。真機(jī)調(diào)試是需要在 ? AppGallery Connect 中創(chuàng)建應(yīng)用的,調(diào)試應(yīng)用需要的cer和p7b文件是從這里生成的。
先決條件:
1. 鴻蒙手機(jī)通過(guò)USB連接電腦,并開(kāi)啟USB調(diào)試。
2. 一個(gè)華為開(kāi)發(fā)者賬號(hào),實(shí)名認(rèn)證
3. APP開(kāi)發(fā)工具DevEco-Studio
關(guān)鍵流程:
1. Studio創(chuàng)建應(yīng)用
2. 如果未登錄過(guò),F(xiàn)ile Project Structure Project Signing Configs簽名配置頁(yè),點(diǎn)擊“Sign In”
3. AppGallery創(chuàng)建應(yīng)用(包名和Studio創(chuàng)建的一樣)
4. 官方文檔到這在簽名配置頁(yè)就點(diǎn)Try Again可以自動(dòng)簽名,我試了不行,以下全是手動(dòng)
5. Studio中Build Generate key and CSR? ?生成p12和csr文件
6. 獲取手機(jī)udid,命令行hdc shell bm get -udid(下一步設(shè)備管理要用)
7. AppGallery主頁(yè) 用戶與訪問(wèn) 左側(cè)設(shè)備管理添加udid的設(shè)備(生成p7b時(shí)要用)
8. AppGallery主頁(yè) 用戶與訪問(wèn) 左側(cè)證書(shū)管理生成cer文件(生成p7b和簽名配置要用)
9. AppGallery主頁(yè) 我的項(xiàng)目 左側(cè)HarmonyOS應(yīng)用 HAP provision profile,生成p7b文件
10. 最后在簽名配置頁(yè)配好 p12、p7b、cer等參數(shù),運(yùn)行鴻蒙應(yīng)用到真機(jī)就行了
網(wǎng)站題目:鴻蒙搭建go開(kāi)發(fā),鴻蒙系統(tǒng) golang
瀏覽地址:http://vcdvsql.cn/article22/dsiicjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、建站公司、Google、服務(wù)器托管、做網(wǎng)站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)