日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

鸿蒙os后台运行,Day10 鸿蒙,Ability全家桶(二)如何后台运行任务

發布時間:2023/12/8 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鸿蒙os后台运行,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()。

(5)最后附上其生命周期的說明。

本文由GZH程序員小小葉發布!

總結

以上是生活随笔為你收集整理的鸿蒙os后台运行,Day10 鸿蒙,Ability全家桶(二)如何后台运行任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。