国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

HarmonyOS《鴻蒙操作系統開發入門經典》|線程管理|剪貼板

開發 OpenHarmony
本文包含筆者對徐文禮老師的《鴻蒙操作系統開發入門經典》的學習過程中的筆記總結、拓展思考、案例反饋、閱讀體驗。

[[413804]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

本文引言

時間:2021年7月24日08:28:18

本文包含筆者對徐文禮老師的《鴻蒙操作系統開發入門經典》的學習過程中的筆記總結、拓展思考、案例反饋、閱讀體驗。

為尊重老師的知識產權和精簡本文,本文不會粘貼代碼、倒置案例、機械打字。

3.7 線程管理

3.7.1線程管理

時間:2021年7月24日08:50:383

注:這一部分書上跟開發文檔基本上就是一樣的

(from開發文檔)

1.概述

  • 不同應用在各自獨立的進程中運行。當應用以任何形式啟動時,系統為其創建進程,該進程將持續運行。當進程完成當前任務處于等待狀態,且系統資源不足時,系統自動回收。
  • 在啟動應用時,系統會為該應用創建一個稱為“主線程”的執行線程。該線程隨著應用創建或消失,是應用的核心線程。UI界面的顯示和更新等操作,都是在主線程上進行。主線程又稱UI線程,默認情況下,所有的操作都是在主線程上執行。
  • 如果需要執行比較耗時的任務(如下載文件、查詢數據庫),可創建其他線程來處理。

2.場景介紹

  • 如果應用的業務邏輯比較復雜,可能需要創建多個線程來執行多個任務。這種情況下,代碼復雜難以維護,任務與線程的交互也會更加繁雜。要解決此問題,開發者可以使用==“TaskDispatcher”==來分發不同的任務。

3.接口說明

  • TaskDispatcher是一個任務分發器,它是Ability分發任務的基本接口,隱藏任務所在線程的實現細節。
  • 為保證應用有更好的響應性,我們需要設計任務的優先級。在UI線程上運行的任務默認以高優先級運行。

  • TaskDispatcher具有多種實現,每種實現對應不同的任務分發器。在分發任務時可以指定任務的優先級,由同一個任務分發器分發出的任務具有相同的優先級。系統提供的任務分發器有GlobalTaskDispatcher、ParallelTaskDispatcher、SerialTaskDispatcher 、SpecTaskDispatcher。

為了更好地體現四個任務分發器的對比關系,筆者制表如下:

注:UITaskDispatcher、MainTaskDispatcher都屬于專有任務分發器SpecTastDispatcher。建議使用UITaskDispatcher。

  1. //GlobalTaskDispatcher全局并發任務分發器 
  2. TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT); 
  3. //ParallelTaskDispatcher并發任務分發器 
  4. String dispatcherName = "parallelTaskDispatcher"
  5. TaskDispatcher parallelTaskDispatcher = createParallelTaskDispatcher(dispatcherName, TaskPriority.DEFAULT); 
  6. //SerialTaskDispatcher串行任務分發器 
  7. String dispatcherName = "serialTaskDispatcher"
  8. TaskDispatcher serialTaskDispatcher = createSerialTaskDispatcher(dispatcherName, TaskPriority.DEFAULT); 
  9. //SpecTaskDispatcher專有任務分發器 
  10. TaskDispatcher uiTaskDispatcher = getUITaskDispatcher(); 
  • 開發步驟總結

為了更好地體現開發任務的的對比關系,筆者制表如下:

3.7.2 線程間的通信

時間:2021年7月24日10:32:10

注:書中對于這一塊也是和開發文檔一模一樣的。

學習總結:

目的:合理運用線程資源

元素:事件(InnerEvent)、任務(Runnable)、機制(EventHandler)、循環器(EventRunner)

場景:投遞事件(雙向)、投遞任務、

方法:

  1. 創建機制子類并重寫方法
  2. 創建循環器
  3. 創建機制子類實例
  4. 投遞事件(需要獲取事件實例)、投遞任務
  5. 啟動或停止機制

1.概述

  • 在開發過程中,開發者經常需要在當前線程中處理下載任務等較為耗時的操作,但是又不希望當前的線程受到阻塞。此時,就可以使用EventHandler機制。
  • EventHandler是HarmonyOS用于處理線程間通信的一種機制,可以通過EventRunner創建新線程,將耗時的操作放到新線程上執行。這樣既不阻塞原來的線程,任務又可以得到合理的處理。

2.基本概念

  • EventRunner是一種事件循環器,循環處理從該EventRunner創建的新線程的事件隊列中獲取InnerEvent事件或者Runnable任務。InnerEvent是EventHandler投遞的事件。
  • EventHandler是一種用戶在當前線程上投遞InnerEvent事件或者Runnable任務到異步線程上處理的機制。每一個EventHandler和指定的EventRunner所創建的新線程綁定,并且該新線程內部有一個事件隊列。EventHandler可以投遞指定的InnerEvent事件或Runnable任務到這個事件隊列。
  • EventRunner從事件隊列里循環地取出事件,如果取出的事件是InnerEvent事件,將在EventRunner所在線程執行processEvent回調;如果取出的事件是Runnable任務,將在EventRunner所在線程執行Runnable的run回調。一般,EventHandler有兩個主要作用:
  • 在不同線程間分發和處理InnerEvent事件或Runnable任務
  • 延遲處理InnerEvent事件或Runnable任務。

3.運作機制

使用EventHandler實現線程間通信的主要流程:

1.EventHandler投遞具體的InnerEvent事件或者Runnable任務到EventRunner所創建的線程的事件隊列。

2.EventRunner循環從事件隊列中獲取InnerEvent事件或者Runnable任務。

3.處理事件或任務:

  • 如果EventRunner取出的事件為InnerEvent事件,則觸發EventHandler的回調方法并觸發EventHandler的處理方法,在新線程上處理該事件。
  • 如果EventRunner取出的事件為Runnable任務,則EventRunner直接在新線程上處理Runnable任務。

4.約束限制

  • 在進行線程間通信的時候,EventHandler只能和EventRunner所創建的線程進行綁定,EventRunner創建時需要判斷是否創建成功,只有確保獲取的EventRunner實例非空時,才可以使用EventHandler綁定EventRunner。
  • 一個EventHandler只能同時與一個EventRunner綁定,一個EventRunner可以同時綁定多個EventHandler。

5.EventRunner工作模式

EventRunner的工作模式可以分為托管模式和手動模式。兩種模式是在調用EventRunner的create()方法時,通過選擇不同的參數來實現的,詳見API參考。默認為托管模式。

  • 托管模式:不需要開發者調用run()和stop()方法去啟動和停止EventRunner。當EventRunner實例化時,系統調用run()來啟動EventRunner;當EventRunner不被引用時,系統調用stop()來停止EventRunner。
  • 手動模式:需要開發者自行調用EventRunner的run()方法和stop()方法來確保線程的啟動和停止。

6.EventRunner、EventHandler的接口很多。

7.三種開發應用

  • EventHandler投遞InnerEvent事件
  • EventHandler投遞Runnable任務
  • 在新創建的線程里將事件投遞到原線程

3.6.17 系統剪貼板服務

時間:2021年7月24日08:28:14

系統剪貼板服務:在應用A中復制的數據,可以在應用B中粘貼

  • HarmonyOS提供了系統剪切板服務的操作接口
  • HarmonyOS提供了剪貼板數據的定義

注意:

  • 只有在前臺獲取焦點的應用才有讀取系統剪切板的權限
  • 寫入數據不會隨應用程序結束而被銷毀
  • 數據會被覆蓋
  • 同一設備剪切板單次傳遞內容不應超過800KB

接口說明:

SystePastedboard提供了系統剪貼板操作的相關接口(復制、粘貼、配置回調)

PageData是剪貼板服務操作的數據對象,一個PageData由若干內容節點(PageData.Record)和一個屬性集合對象(PageData.DataProperty)組成。

  • Record是存放剪貼板數據信息的最小單位,每個Record都有特定的MIME類型(文本、HTML、URL、Intent)
  • 剪貼板數據的屬性存放在DataProperty(時間戳、標簽)

開發步驟:

  • 獲取服務
  • A寫入數據
  • B讀取數據
  • C添加數據變化回調

小總結

  • 線程管理中四種任務分發器、三種派發任務、三種基礎操作、兩種屏障需要多多熟悉,根據前幾日做HCIA模擬題的經驗,這部分出題是必然的。
  • 線程通信需要總體把握,目的、場景、元素、方法。
  • 剪貼板的原理一起都沒有仔細學習過,感覺很簡單,今日學習發現確實很簡單,但有一些需要在開發的過程中注意的地方。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-07-27 11:39:40

鴻蒙HarmonyOS應用

2021-07-21 15:33:03

鴻蒙HarmonyOS應用

2011-08-09 10:27:41

iOS剪貼板

2021-12-02 10:11:44

鴻蒙HarmonyOS應用

2009-12-18 14:10:29

Ruby訪問剪貼板

2010-02-02 17:47:59

C++操作剪貼板

2023-02-06 07:17:22

2024-04-09 08:27:01

Android高效管理數據

2016-05-11 15:01:31

Linux剪貼板管理器

2020-12-14 05:57:01

clipboard.Selection execCommand

2009-08-10 17:37:54

2022-03-31 22:53:47

Windows 11太陽谷2智能剪貼板

2018-03-23 10:15:28

Windows 10云剪貼板復制粘貼

2021-08-29 07:43:43

CopyQ操作系統微軟

2025-06-23 08:30:00

webAPI剪貼板

2019-08-19 13:40:34

Windows 10剪貼板Windows

2021-03-09 05:48:01

Windows10操作系統21H2

2021-11-30 05:37:51

App監聽手機監管

2020-10-12 09:40:57

Windows 10Windows操作系統

2023-05-22 16:12:17

點贊
收藏

51CTO技術棧公眾號

蜜桃视频在线观看播放| 久久久蜜桃精品| 久久精品一级| 国产一区二区在线观看免费| 少妇高潮 亚洲精品| 91精品无人成人www| 国产米奇在线777精品观看| 成人性生交大片免费观看嘿嘿视频| 国产精品久久久久久久9999 | 午夜日韩成人影院| 日韩在线观看网址| 欧美精品一线| av免费观看大全| 在线免费一区三区| 免费成人高清在线视频| 国产精品成人一区二区三区吃奶| 朝桐光一区二区| 亚洲人成电影在线| gogo久久| 在线观看欧美视频| 国产一区二区三区影视| 日韩欧美在线不卡| 亚洲日本理论电影| 免费在线一区观看| 日韩精品一区二区三区四区五区| 日韩精品电影在线观看| 亚洲欧美综合一区| 蜜桃精品视频在线| 性欧美xxxx| 无遮挡爽大片在线观看视频| 欧美极品一区二区| 日韩激情免费视频| 亚洲精品在线a| 国产一区二区黄| h片视频在线观看| 国产午夜精品麻豆| 亚洲电影有码| 久久久久久久久久av| 国产精品一区二区中文字幕 | 在线黄色av| 欧美午夜在线观看| 国产在线二区| 亚洲亚裔videos黑人hd| 亚洲精品a区| 国产精品入口免费视频一| 午夜日韩视频| 亚洲一区二区自拍偷拍| 91免费精品国自产拍在线不卡| 成人18免费| 日韩欧美中文字幕在线播放| 激情图区综合网| 亚洲三级av在线| 北岛玲一区二区三区| 任我爽精品视频在线播放| 亚洲 欧美 综合 另类 中字| 国产精品秘入口| 欧美日韩精品是欧美日韩精品| 欧美v亚洲v| 国产欧美视频一区二区三区| 色欧美激情视频在线| 日韩精品视频在线观看网址 | 天天做天天爱天天爽综合网| 成人在线免费观看视视频| 国产欧美综合一区二区三区| 特色特色大片在线| 亚洲精品一卡二卡| 综合久久2019| 97在线视频一区| 亚洲一区日本| 亚洲 激情 在线| 欧美性猛交xxx| 日韩欧美三区| 91沈先生播放一区二区| 成人av在线影院| 青青草超碰在线| 精品国产一区二区三区四区在线观看 | 秋霞午夜在线观看| 久久国产视频网| 国产精品日韩久久久久| 国产色在线 com| 91香蕉视频mp4| 偷拍自拍在线| 欧美精品乱人伦久久久久久| 老司机午夜av| 欧美高清性xxxxhdvideosex| 免费观看在线黄色网| 精品国产乱码久久久久久夜甘婷婷 | 91精品成人久久| 97se亚洲| 国产经品一区二区| 粉嫩欧美一区二区三区高清影视| 亚在线播放中文视频| caoporn成人免费视频在线| 日韩精品久久久| 婷婷亚洲五月| 午夜精品免费视频| 麻豆传媒在线完整视频| 欧美剧在线观看| 国产精品日本| 7m精品福利视频导航| 亚洲黄网站黄| xxxx性欧美| 国产一区二区三区黄视频| 久久久水蜜桃| 亚洲美女在线一区| 午夜无码国产理论在线| 成人免费看片网站| 国产精品二三区| 成人午夜在线| 亚洲欧洲久久| 欧美乱熟臀69xxxxxx| 国产精品黑丝在线播放| 久久国产精品视频在线观看| 欧美一区二区大片| 亚洲国产日本| 在线观看理论片| 国产精品pans私拍| 国产精品美女一区二区在线观看| 亚洲深夜视频| 欧美精品一区二区三区久久| 日韩欧美国产成人| 日韩中文在线电影| 色琪琪丁香婷婷综合久久| 欧美激情成人在线视频| 成人性生交大片免费看中文| 男人天堂视频在线观看| 秋霞毛片久久久久久久久| 欧美日韩激情一区二区| 狠狠色丁香久久综合频道| 免费在线一级视频| 亚洲一区二区三区四区视频| 久久婷婷激情| 日本三级在线视频| 97国产成人精品视频| 99视频有精品| 久久久久毛片| 国产一级爱c视频| 国产午夜精品视频免费不卡69堂| 蜜臀av亚洲一区中文字幕| 2024最新电影在线免费观看| av中文字幕在线播放| 精品久久av| 亚洲成人av中文| 丁香五六月婷婷久久激情| 国产一线二线在线观看 | 亚洲天堂中文字幕在线观看| 精品免费视频123区| 欧美香蕉大胸在线视频观看| 国产精品手机在线播放| 麻豆免费网站| 日韩美女免费视频| 怡红院av一区二区三区| 日韩av专区| 韩国福利在线| 国产精品成久久久久三级| 亚洲在线观看免费| 悠悠资源网久久精品| 毛片大全在线观看| 国产av熟女一区二区三区| 超碰91人人草人人干| 亚洲欧美aⅴ...| 黄色亚洲免费| 综合图区亚洲| 无码精品a∨在线观看中文| 欧美成人免费视频| 亚洲尤物在线视频观看| 国内精品福利| 在线天堂资源| 久久精品免费网站| 亚洲自拍小视频| 日韩国产激情在线| 日本一区二区在线不卡| 99久久九九| 国产盗摄在线视频网站| 国产最新免费视频| 日韩一级片在线观看| 日本精品视频一区二区| 天天影视网天天综合色在线播放| 日韩你懂的在线播放| 欧美一乱一性一交一视频| 日韩最新中文字幕| 欧美拍拍视频| 亚州av一区| 久久欧美中文字幕| 欧美一区二区三区在线看| 久久久久久亚洲精品中文字幕| 精品久久sese| 欧美日韩黄色一级片| 日韩免费在线观看av| 国产精品爽爽爽爽爽爽在线观看| 精品毛片乱码1区2区3区| 亚洲精品国产美女| 精品国产青草久久久久福利| 成人av网址在线| 国产999精品久久久久久| 日韩—二三区免费观看av| 男人操女人的视频在线观看欧美| 99综合电影在线视频| 中文字幕日韩一区二区| 国产在线播放一区三区四|