偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

鴻蒙應(yīng)用程序Ability(能力)看這一篇就夠

系統(tǒng)
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com

[[387000]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

本節(jié)概述

  • 什么是Ability
  • Ability分類
  • Ability生命周期
  • Ability之間跳轉(zhuǎn)

什么是Ability

Ability意為能力,是HarmonyOS應(yīng)用程序提供的抽象功能。在Android應(yīng)用程序中,Activity是整個(gè)應(yīng)用程序的核心,其意為活動(dòng)。無(wú)論是活動(dòng)還是能力都是一種表述形式,雖然直譯后理解起來(lái)比較抽象,但如果我們把它們理解為功能,這樣就比較方便了。

就目前單一設(shè)備而言,我們可以使用手機(jī)打電話,發(fā)短信,玩游戲等,這些就是手機(jī)具有能力。在生活中,能力的體現(xiàn)無(wú)處不在,比如電飯煲具有蒸煮煲湯的能力;電視具有播放視頻的能力;音響具有外放音樂(lè)的能力。

但HarmonyOS分布式系統(tǒng)所要實(shí)現(xiàn)的不僅僅是單一的能力,它所要達(dá)到的效果是能力可以單獨(dú)存在,可以互相關(guān)聯(lián),可以彼此調(diào)用互相遷移。比如可以將手機(jī)端播放的視頻遷移到智慧屏,通過(guò)大屏來(lái)觀看視頻,同時(shí)也可以將視頻音效分離到外設(shè)音響;通過(guò)設(shè)備A獲取設(shè)備B的數(shù)據(jù);多設(shè)備終端數(shù)據(jù)同步等。

在HarmonyOS分布式系統(tǒng)中,一切皆能力,能力無(wú)大小。在HarmonyOS應(yīng)用程序中,一個(gè)頁(yè)面即一種能力,如登錄頁(yè)面,即具有登錄功能的能力;一個(gè)服務(wù)即一種能力,如后臺(tái)播放音樂(lè)的能力;一個(gè)數(shù)據(jù)操作即一種能力,如獲取數(shù)據(jù)庫(kù)數(shù)據(jù)等。同時(shí)能力之間也可以互相調(diào)用,通過(guò)頁(yè)面能力來(lái)管理后臺(tái)音效播放與暫停。

面向?qū)ο缶幊讨幸磺薪詫?duì)象,在HarmonyOS中一切皆能力。

Ability分類

一個(gè)HarmonyOS應(yīng)用程序可以包含一個(gè)或多個(gè)能力。HarmonyOS應(yīng)用程序可以以能力為單位進(jìn)行部署。在HarmonyOS應(yīng)用程序中將能力分為FA(Feature Ability,即元程序)和PA(Particle Ability,即元服務(wù))兩種類型,針對(duì)兩種類型提供了不同的模板可以在日常業(yè)務(wù)開發(fā)中直接使用。

FA支持Page Ability

FA代表有UI界面的能力,被設(shè)計(jì)用于與用戶交互。直白點(diǎn)就是給用戶提供可操作的頁(yè)面,官方根據(jù)不同的業(yè)務(wù)類型提供了不同種類的模板,比如關(guān)于頁(yè)面、列表頁(yè)面、個(gè)人中心頁(yè)面等,可以根據(jù)不同的使用場(chǎng)景來(lái)選擇不同的模板,也可以在當(dāng)前模板的基礎(chǔ)上進(jìn)行修改以達(dá)到功能的快速實(shí)現(xiàn)。同時(shí)也可以調(diào)用PA支持的能力,來(lái)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,比如在新聞內(nèi)容頁(yè)面通過(guò)Service Ability實(shí)現(xiàn)后臺(tái)自動(dòng)播放音樂(lè)。

PA支持Service Ability 和Data Ability

PA代表沒(méi)有UI界面的能力,用于支持FA。例如提供數(shù)據(jù)訪問(wèn)能力作為數(shù)據(jù)存儲(chǔ)。Service Ability提供后臺(tái)運(yùn)行任務(wù)的能力;Data Ability提供插入、刪除、更新、查詢及打開文件的能力。

Ability生命周期

能力有四種生命周期狀態(tài):INITIAL(初始態(tài))、INACTIVE(未激活)、ACTIVE(激活)、BACKGROUND(后臺(tái))。

INITIAL: 初始狀態(tài)。將即將啟動(dòng)的能力加載到內(nèi)存中,但不運(yùn)行。

INACTIVE:未激活狀態(tài)。前臺(tái)和后臺(tái)中間的狀態(tài),該狀態(tài)下UI可見,但不可操作。

ACTIVE:激活狀態(tài)。當(dāng)前置于前臺(tái)頁(yè)面完整呈現(xiàn),可交互狀態(tài)。

BACKGROUND: 不可見狀態(tài)。也稱置于后臺(tái),比如A頁(yè)面跳轉(zhuǎn)到B頁(yè)面,則B頁(yè)面呈現(xiàn),A頁(yè)面隱藏。這種狀態(tài)的頁(yè)面在內(nèi)存不足情況下會(huì)被銷毀。

整個(gè)完整的生命周期圖如下所示(來(lái)自官方):

注(翻譯錯(cuò)誤):圖中由于內(nèi)存不足或用戶跳轉(zhuǎn)到該能力之后能力被系統(tǒng)銷毀改為系統(tǒng)內(nèi)存不足等原因?qū)е陆K止能力,用戶重新導(dǎo)航到該能力。

所有頁(yè)面能力都必須從重寫onStart()方法開始,該能力的所有生命周期回調(diào)方法如下:

  1. @Override 
  2.   public void onStart(Intent intent) { 
  3.       super.onStart(intent); 
  4.       super.setMainRoute(HomeAbilitySlice.class.getName()); 
  5.   } 
  6.  
  7.   @Override 
  8.   protected void onActive() { 
  9.       super.onActive(); 
  10.   } 
  11.  
  12.   @Override 
  13.   protected void onInactive() { 
  14.       super.onInactive(); 
  15.   } 
  16.  
  17.   @Override 
  18.   protected void onBackground() { 
  19.       super.onBackground(); 
  20.   } 
  21.  
  22.   @Override 
  23.   protected void onForeground(Intent intent) { 
  24.       super.onForeground(intent); 
  25.   } 
  26.  
  27.   @Override 
  28.   protected void onStop() { 
  29.       super.onStop(); 
  30.   } 

這里我們專門寫一個(gè)頁(yè)面間跳轉(zhuǎn)來(lái)觀察能力的生命周期,使用HiLog日志的形式來(lái)查看。運(yùn)行應(yīng)用程序并點(diǎn)擊跳轉(zhuǎn),然后再返回,日志控制臺(tái)輸出如下所示。

  1. Ability_Lifecycle: MainAbility onInitialized()方法... 
  2. Ability_Lifecycle: MainAbility onStart()方法... 
  3. Ability_Lifecycle: MainAbility onActive()方法... 
  4. Ability_Lifecycle: MainAbility onInactive()方法... 
  5. Ability_Lifecycle: HomeAbility onInitialized()方法... 
  6. Ability_Lifecycle: HomeAbility onStart()方法... 
  7. Ability_Lifecycle: HomeAbility onActive()方法... 
  8. Ability_Lifecycle: MainAbility onBackground()方法... 
  9. Ability_Lifecycle: HomeAbility onInactive()方法... 
  10. Ability_Lifecycle: MainAbility onForeground()方法... 
  11. Ability_Lifecycle: MainAbility onActive()方法... 
  12. Ability_Lifecycle: HomeAbility onBackground()方法... 
  13. Ability_Lifecycle: HomeAbility onStop()方法... 

從日志我們觀察到先啟動(dòng)MainAbility,當(dāng)跳轉(zhuǎn)到HomeAbility時(shí),HomeAbility被激活,而MainAbility進(jìn)入不可見(也就是后臺(tái)),當(dāng)點(diǎn)擊返回按鈕后,MainAbility回到前臺(tái)并激活,而HomeAbility將不可見并銷毀。

Ability之間跳轉(zhuǎn)

Ability之間的跳轉(zhuǎn)是以意圖(Intent)為載體來(lái)承載需要對(duì)象之間傳遞的信息。通過(guò)封裝意圖相關(guān)的參數(shù)(Parameters)和操作(Operation),可以啟動(dòng)或跳轉(zhuǎn)到另一個(gè)能力。

  1. Button button = (Button) findComponentById(ResourceTable.Id_btn); 
  2.  button.setClickedListener(l -> { 
  3.      Operation operation = new Intent.OperationBuilder() 
  4.              .withDeviceId(""
  5.              .withBundleName("com.itming.walking.photokit"
  6.              .withAbilityName("com.itming.walking.photokit.HomeAbility"
  7.              .build(); 
  8.      intent.setOperation(operation); 
  9.      startAbility(intent); 
  10.  }); 

本節(jié)主要闡述了能力(Ability)是什么、分類、生命周期及如何使用,后續(xù)將對(duì)Ability中方法進(jìn)行詳解,敬請(qǐng)期待...

注:文中若有理解偏差,歡迎一起討論!

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-09-29 09:00:19

Linux虛擬機(jī)CentOS

2022-08-01 11:33:09

用戶分析標(biāo)簽策略

2021-04-08 07:37:39

隊(duì)列數(shù)據(jù)結(jié)構(gòu)算法

2023-09-11 08:13:03

分布式跟蹤工具

2022-07-19 19:39:05

RTK技術(shù)定位技術(shù)

2020-10-17 08:48:12

搞懂“智能聯(lián)接”

2022-06-20 09:01:23

Git插件項(xiàng)目

2020-02-18 16:20:03

Redis ANSI C語(yǔ)言日志型

2023-02-10 09:04:27

2017-03-11 22:19:09

深度學(xué)習(xí)

2022-04-07 10:39:21

反射Java安全

2023-11-18 09:30:42

模型AI

2020-09-10 06:56:12

SringMVC源碼參數(shù)

2020-07-03 08:21:57

Java集合框架

2024-09-23 08:00:00

消息隊(duì)列MQ分布式系統(tǒng)

2019-05-14 09:31:16

架構(gòu)整潔軟件編程范式

2023-10-17 08:15:28

API前后端分離

2018-05-22 08:24:50

PythonPyMongoMongoDB

2019-04-02 10:51:29

瀏覽器緩存前端

2017-03-13 09:50:46

Python裝飾器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)