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