99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony鴻蒙開發(fā)學(xué)習(xí):【Ability的啟動模式】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-10 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Stage模型中,實現(xiàn)standard、singleton、specified多種模式場景。

本實例參考[開發(fā)指南][gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]。 本實例需要使用[aa工具] 查看應(yīng)用Ability 模式信息。

效果預(yù)覽

image.png

使用說明

搜狗高速瀏覽器截圖20240326151450.png

1、standard模式:

1)進(jìn)入首頁,點(diǎn)擊番茄,會新建一個番茄的Ability,展示番茄的詳情;

2)在番茄的詳情界面,點(diǎn)擊黃瓜,會新建一個黃瓜的Ability,展示黃瓜的詳情;

3)使用aa工具查看Ability信息,此時存在以下Ability:1個番茄的Ability、1個黃瓜的Ability、1個首頁的Ability;

2、singleton模式:

1)進(jìn)入首頁,點(diǎn)擊冰淇凌,會新建一個冰淇凌的Ability,展示冰淇凌的詳情;

2)在冰淇凌的詳情界面,點(diǎn)擊螃蟹,會復(fù)用冰淇凌的Ability,頁面數(shù)據(jù)會刷新并展示螃蟹的詳情;

3)使用aa工具查看Ability信息,此時存在以下Ability:1個冰淇凌的Ability、1個首頁Ability;

3、specified模式:

1)進(jìn)入首頁,點(diǎn)擊核桃,會新建一個核桃的Ability,展示核桃的詳情;

2)在核桃的詳情界面,點(diǎn)擊藍(lán)莓,會新建一個藍(lán)莓的Ability,展示藍(lán)莓的詳情;

3)在藍(lán)莓的詳情界面,點(diǎn)擊核桃,會復(fù)用已存在的核桃的Ability,實現(xiàn)specified模式下的單實例特性,頁面數(shù)據(jù)會刷新并展示核桃的詳情;

4)使用aa工具查看Ability信息,此時存在以下Ability:1個核桃的Ability、1個藍(lán)莓的Ability、1個首頁Ability;

具體實現(xiàn)

  • 本示例啟動standard、singleton、specified三種模式的方法主要封裝在Util當(dāng)中,源碼參考:[Util.ts]。
/*

 * Copyright (c) 2022 Huawei Device Co., Ltd.

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */



import Logger from './Logger'



const TAG = '[Sample_StartMode]'

let contextCaller, want



interface EventHub {

  emit(event: string, ...args: Object[]): void

}



interface AbilityContext {

  eventHub: EventHub

}



export function getContextData(): any {

  Logger.info(TAG, 'UtilPage getContextData start')

  let context = getContext(this) as AbilityContext

  let data = {

    context: null,

    launchWant: null

  }

  context.eventHub.emit("getAbilityData", data)

  contextCaller = data.context // 拿到全局的context,即類似globalThis.mainAbilityContext

  want = data.launchWant

  Logger.info(TAG, 'UtilPage contextCaller ' + JSON.stringify(contextCaller))

  return { 'want': want }

}



export function startMode(wantParameters: any, abilityName: string) {

  Logger.info(TAG, `${abilityName} start`)

  getContextData()

  let want = {

    bundleName: 'ohos.samples.startmode',

    abilityName: abilityName,

    parameters: wantParameters

  }



  Logger.info(TAG, `${abilityName} contextCaller ${JSON.stringify(contextCaller)}`)

  contextCaller.startAbility(want).catch(err = > {

    Logger.info(TAG, 'err is' + JSON.stringify(err))

  })

  Logger.info(TAG, `${abilityName} end`)

}



export function totast() {

  AlertDialog.show(

    {

      message: $r('app.string.totast'),

      secondaryButton: {

        value: 'ok',

        action: () = > {

          Logger.info(TAG, 'Callback when the second button is clicked')

        }

      }

    }

  )

}
  • 新建Ability:創(chuàng)建三個代表standard、singleton、specified模式的Ability,如工程目錄中的SingletonAbility、SpecifiedAbility、StandardAbility,并在module.json文件中將launchType屬性修改為對應(yīng)的啟動模式屬性。
  • 啟動指定Ability:通過Util中的startMode函數(shù)根據(jù)頁面所傳的abilityName,啟動對應(yīng)的ability并進(jìn)入詳情頁面。
  • specified多實例功能實現(xiàn):specified模式則是根據(jù)MyAbilityStage中的onAcceptWant函數(shù)給用戶返回一個ability標(biāo)識,如果之前啟動過標(biāo)識的ability,不創(chuàng)建新的實例并拉回棧頂,否則創(chuàng)建新的實例并啟動。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2618

    瀏覽量

    44038
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3853

    瀏覽量

    18596
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二)

    UIAbility,根據(jù)下圖可知,在鴻蒙中UIAbility繼承于Ability,開發(fā)者無法直接繼承Ability。只能使用其兩個子類:UIAbility和ExtensionAbili
    的頭像 發(fā)表于 07-11 18:17 ?250次閱讀
    【HarmonyOS 5】<b class='flag-5'>鴻蒙</b>中的UIAbility詳解(二)

    開源鴻蒙開發(fā)必備!OpenHarmony替換Full SDK全攻略

    本文介紹開源鴻蒙OpenHarmony替換FullSDK的方法,演示設(shè)備為觸覺智能PurplePiOH鴻蒙開發(fā)板獲取FullSD
    的頭像 發(fā)表于 06-06 18:11 ?248次閱讀
    開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>必備!<b class='flag-5'>OpenHarmony</b>替換Full SDK全攻略

    全志科技亮相OpenHarmony開發(fā)者大會2025

    近日,OpenHarmony開發(fā)者大會 2025(OHDC.2025,以下簡稱“大會”)在深圳舉辦。大會正式發(fā)布了開源鴻蒙5.1 Release版本,舉行了“開源鴻蒙應(yīng)用技術(shù)組件共建
    的頭像 發(fā)表于 06-04 09:16 ?579次閱讀
    全志科技亮相<b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>者大會2025

    DialogHub上線OpenHarmony開源社區(qū),高效開發(fā)鴻蒙應(yīng)用彈窗

    作為鴻蒙應(yīng)用開發(fā)者,在使用ArkUI現(xiàn)有能力進(jìn)行彈窗開發(fā)時,總會遇到一些讓人糾結(jié)的交互問題:應(yīng)用內(nèi)進(jìn)行消息提示時,既要求消息內(nèi)容支持圖文混排,又要求彈窗本身不能打斷用戶交互(頁面滑動、頁面
    發(fā)表于 04-03 17:30

    鴻蒙北向開發(fā)OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置

    本文介紹OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置,鴻蒙北向開發(fā)入門必備!由觸覺智能Purple Pi OH鴻蒙
    的頭像 發(fā)表于 03-28 18:05 ?859次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發(fā)</b><b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與配置

    【北京迅為】itop-3568 開發(fā)openharmony鴻蒙燒寫及測試-第2章OpenHarmony v3.2-Beta4版本測試

    【北京迅為】itop-3568 開發(fā)openharmony鴻蒙燒寫及測試-第2章OpenHarmony v3.2-Beta4版本測試
    的頭像 發(fā)表于 03-05 10:53 ?458次閱讀
    【北京迅為】itop-3568 <b class='flag-5'>開發(fā)</b>板<b class='flag-5'>openharmony</b><b class='flag-5'>鴻蒙</b>燒寫及測試-第2章<b class='flag-5'>OpenHarmony</b> v3.2-Beta4版本測試

    【北京迅為】itop-3568 開發(fā)openharmony鴻蒙燒寫及測試-第1章 體驗OpenHarmony—燒寫鏡像

    【北京迅為】itop-3568 開發(fā)openharmony鴻蒙燒寫及測試-第1章 體驗OpenHarmony—燒寫鏡像
    的頭像 發(fā)表于 03-04 16:31 ?550次閱讀
    【北京迅為】itop-3568 <b class='flag-5'>開發(fā)</b>板<b class='flag-5'>openharmony</b><b class='flag-5'>鴻蒙</b>燒寫及測試-第1章 體驗<b class='flag-5'>OpenHarmony</b>—燒寫鏡像

    鴻蒙北向開發(fā)OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置

    OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置,鴻蒙北向開發(fā)入門必備!
    的頭像 發(fā)表于 02-07 17:35 ?819次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發(fā)</b><b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與配置

    鴻蒙原生頁面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    NEXT的原生頁面高性能解決方案,從頁面滑動、跳轉(zhuǎn)及應(yīng)用冷啟動等關(guān)鍵環(huán)節(jié),為開發(fā)者提供全面的支持。目前,這些解決方案均已上線OpenHarmony開源社區(qū),可在OpenHarmony
    發(fā)表于 01-02 18:00

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發(fā)板演示

    本文介紹瑞芯微主板/開發(fā)板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設(shè)計,支持開
    的頭像 發(fā)表于 12-30 10:08 ?834次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發(fā)板演示

    開源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,搭載了瑞芯微RK3566四核處理器,Laval
    的頭像 發(fā)表于 12-24 11:46 ?728次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板演示

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,修改產(chǎn)品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新OpenHarmon
    的頭像 發(fā)表于 11-27 09:31 ?749次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發(fā)板演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,開啟/關(guān)閉SELinux權(quán)限的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新Open
    的頭像 發(fā)表于 11-18 19:03 ?835次閱讀
    如何在開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>開啟SELinux<b class='flag-5'>模式</b>?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板演示

    瑞芯微RK3566鴻蒙開發(fā)OpenHarmony標(biāo)準(zhǔn)系統(tǒng)應(yīng)用兼容性測試指導(dǎo)

    本文OpenHarmony標(biāo)準(zhǔn)系統(tǒng)應(yīng)用兼容性測試指導(dǎo),適用鴻蒙系統(tǒng)軟件開發(fā)測試的新手入門學(xué)習(xí)課程,設(shè)備為觸覺智能的瑞芯微RK3566開發(fā)板,
    的頭像 發(fā)表于 09-10 11:56 ?1265次閱讀
    瑞芯微RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板<b class='flag-5'>OpenHarmony</b>標(biāo)準(zhǔn)系統(tǒng)應(yīng)用兼容性測試指導(dǎo)

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)

    4.1學(xué)習(xí)之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統(tǒng)的無限魅力吧! 【北京迅為】OpenHarmony學(xué)習(xí)開發(fā)系列教程(第1期 北向基礎(chǔ)
    發(fā)表于 07-23 10:44