Day10 鴻蒙,Ability全家桶(二)如何後臺執行任務
今天我們來聊一下Service Ability,基於Service模板的Ability(以下簡稱“Service”)主要用於後臺執行任務(如執行音樂播放、檔案下載等),但不提供使用者互動介面。Service可由其他應用或Ability啟動,即使使用者切換到其他應用,Service仍將在後臺繼續執行。
這裡就不得不提到另外一個知識點,執行緒。
其實目前我們前面提到的一些UI佈局的繪製都是在主執行緒上進行的,又稱UI執行緒,預設情況下,所有的操作都是在主執行緒上執行,這裡如果我們系統透過ServiceAbility來完成後臺執行任務,我們首先要初步瞭解一下asyncDispatch。
(1)初識TaskDispatcher的非同步派發任務asyncDispatch;
那麼TaskDispatcher又是什麼呢?TaskDispatcher是一個任務分發器,它是Ability分發任務的基本介面,隱藏任務所線上程的實現細節。詳細的介紹我們放到後面,先來了解非同步派發任務asyncDispatch:派發任務,並立即返回,返回值是一個可用於取消任務的介面。
(2)建立Service Ability;
透過工具欄File->New->Ability->Empty Service Ability來建立Service Ability,這樣建立的好處是可以在config.json中自動完成Service Ability的配置。
(3)啟動Service Ability;
這裡還可以透過Intent的構造元素Parameters來傳遞引數,進行簡單的資料傳遞。
(4)連線ServiceAbility
如果Service需要與Page Ability或其他應用的Service Ability進行互動,則應建立用於連線的Connection。Service支援其他Ability透過connectAbility()方法與其進行連線。在使用connectAbility()處理回撥時,需要傳入目標Service的Intent與IAbilityConnection的例項。IAbilityConnection提供了兩個方法供開發者實現:onAbilityConnectDone()用來處理連線的回撥,onAbilityDisconnectDone()用來處理斷開連線的回撥。
連線時步驟(1)(2)保持不變,connectAbility中傳入intentService和connection。
這裡詳細的建立IDL檔案過程可參考《IDL介面使用規範》和《定義HarmonyOS IDL介面》。這個在後續的文章中分析討論,目前官方 的介面還無法成功回撥onAbilityConnectDone()。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989270/viewspace-2755260/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何使用WorkManager執行後臺任務(上)
- Java之定時任務全家桶Java
- 使用screen後臺執行任務
- php後臺定時執行任務PHP
- 鴻蒙中hvigor自定義任務鴻蒙Go
- linux後臺執行和關閉、檢視後臺任務Linux
- 鴻蒙開發Hvigor任務簡介鴻蒙Go
- 例項後臺執行訓練或任務
- 鴻蒙程式設計江湖:深入理解TaskPool和Worker的併發任務執行鴻蒙程式設計
- Vue全家桶學習(二)Vue
- .NET寶藏API之:IHostedService,後臺任務執行API
- 跟阿斌一起學鴻蒙(2). Ability vs App?鴻蒙APP
- ASP.NET Core 2.1 : 十一. 如何在後臺執行一個任務ASP.NET
- 大資料開發-linux後臺執行,關閉,檢視後臺任務大資料Linux
- 後臺任務
- 鴻蒙程式設計江湖:併發程式設計基礎與鴻蒙中的任務併發鴻蒙程式設計
- 如何避免任務重複執行
- SwnoRabbit全家桶
- vue全家桶Vue
- 鴻蒙案例實踐:影像處理應用中多執行緒任務排程與效能最佳化鴻蒙執行緒
- 鴻蒙HarmonyOS實戰-Stage模型(執行緒模型)鴻蒙模型執行緒
- Linux 任務後臺執行軟體【即:終端複用器】之---screenLinux
- Mac Redis 服務後臺執行MacRedis
- 如何搭建一個REACT全家桶框架React框架
- 鴻蒙HarmonyOS實戰-Stage模型(服務卡片介紹和執行機制)鴻蒙模型
- Vue-Mall Vue全家桶+Node後端服務實現的商城Vue後端
- 如何在 Flutter 建立一個後臺任務Flutter
- 鴻蒙 HAIWEI DevEco Studio 安裝配置,執行Hello World!鴻蒙AIdev
- 鴻蒙hvigor構建任務依賴與生命週期簡介鴻蒙Go
- MPU:鴻蒙輕核心的任務棧的溢位檢察官鴻蒙
- 如何使用cron任務每隔2天在固定時間執行任務
- Redux 進階 – react 全家桶學習筆記(二)ReduxReact筆記
- Redux 進階 - react 全家桶學習筆記(二)ReduxReact筆記
- 零基礎帶你吃掉JNI全家桶(二)
- NVIDIA大模型平臺軟體全家桶開啟雲智慧第二曲線大模型
- 品讀鴻蒙HDF架構(二)鴻蒙架構
- React全家桶專案React
- Spring全家桶一覽Spring