在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-10 16:32 ? 次閱讀

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

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

效果預(yù)覽

image.png

使用說(shuō)明

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

1、standard模式:

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

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

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

2、singleton模式:

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

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

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

3、specified模式:

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

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

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

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

具體實(shí)現(xiàn)

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

審核編輯 黃宇

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

    關(guān)注

    57

    文章

    2370

    瀏覽量

    42905
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3728

    瀏覽量

    16403
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,開啟/關(guān)閉SELinux權(quán)限的方法,觸覺(jué)智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新Open
    的頭像 發(fā)表于 11-18 19:03 ?372次閱讀
    如何在開源<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>板演示

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

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

    鴻蒙開發(fā)啟動(dòng)本地PageAbility

    PageAbility相關(guān)的能力通過(guò)featureAbility提供,啟動(dòng)本地Ability通過(guò)featureAbility中的startAbility接口實(shí)現(xiàn)。
    的頭像 發(fā)表于 06-18 09:29 ?305次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>啟動(dòng)</b>本地PageAbility

    鴻蒙開發(fā):PageAbility的啟動(dòng)模式

    啟動(dòng)模式對(duì)應(yīng)PageAbility被啟動(dòng)時(shí)的行為,支持單實(shí)例模式、多實(shí)例模式兩種啟動(dòng)
    的頭像 發(fā)表于 06-17 14:35 ?378次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:PageAbility的<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>模式</b>

    鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件啟動(dòng)模式

    UIAbility的啟動(dòng)模式是指UIAbility實(shí)例在啟動(dòng)時(shí)的不同呈現(xiàn)狀態(tài)。針對(duì)不同的業(yè)務(wù)場(chǎng)景,系統(tǒng)提供了三種啟動(dòng)模式
    的頭像 發(fā)表于 06-06 11:05 ?865次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> Kit(程序框架服務(wù))【UIAbility組件<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>模式</b>】

    鴻蒙開發(fā)接口Ability框架:【AbilityDelegator】

    OnCreate生命周期、設(shè)置等待時(shí)間等、獲取指定ability的生命周期狀態(tài)、獲取當(dāng)前應(yīng)用頂部ability啟動(dòng)指定ability等。
    的頭像 發(fā)表于 05-16 16:48 ?946次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【AbilityDelegator】

    鴻蒙開發(fā)接口Ability框架:【(AbilityDelegator)】

    OnCreate生命周期、設(shè)置等待時(shí)間等、獲取指定ability的生命周期狀態(tài)、獲取當(dāng)前應(yīng)用頂部ability啟動(dòng)指定ability等。
    的頭像 發(fā)表于 05-13 17:58 ?973次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【(AbilityDelegator)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.ability.particleAbility (particleAbility模塊)】

    particleAbility模塊提供了Service類型Ability的能力,包括啟動(dòng)、停止指定的particleAbility,獲取dataAbilityHelper,連接、斷開當(dāng)前Ability與指定ServiceAbil
    的頭像 發(fā)表于 05-09 10:21 ?730次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.<b class='flag-5'>ability</b>.particleAbility (particleAbility模塊)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.ability.featureAbility (FeatureAbility模塊)】

    FeatureAbility模塊提供帶有UI設(shè)計(jì)與用戶交互的能力,包括啟動(dòng)新的ability、獲取dataAbilityHelper、設(shè)置此Page Ability、獲取當(dāng)前Ability
    的頭像 發(fā)表于 05-06 16:31 ?1025次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.<b class='flag-5'>ability</b>.featureAbility (FeatureAbility模塊)】

    鴻蒙開發(fā)接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模塊提供對(duì)Ability生命周期、上下文環(huán)境等調(diào)用管理的能力,包括Ability創(chuàng)建、銷毀、轉(zhuǎn)儲(chǔ)客戶端信息等。
    的頭像 發(fā)表于 04-30 17:42 ?2289次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>Ability</b>框架:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

    鴻蒙實(shí)戰(zhàn)項(xiàng)目開發(fā):【短信服務(wù)】

    ://gitee.com/openharmony/applications_app_samples.git git pull origin master ? 最后呢,很多開發(fā)朋友不知道需要學(xué)習(xí)那些
    發(fā)表于 03-03 21:29

    鴻蒙不再兼容安卓,那么鴻蒙開發(fā)者是否會(huì)大增?

    鴻蒙技術(shù),享受藍(lán)海紅利。 鴻蒙的技術(shù)技能體系是怎么的?其實(shí)鴻蒙的板塊內(nèi)容也是居多的,可以用一張鴻蒙開發(fā)
    發(fā)表于 01-31 22:17

    鴻蒙開發(fā)OpenHarmony組件復(fù)用案例

    ) } }, item => item) } } } 本文主要是對(duì)鴻蒙開發(fā)基礎(chǔ)當(dāng)中的OpenHarmony技術(shù)組件復(fù)用示例, 更多鴻蒙開發(fā)
    發(fā)表于 01-15 17:37
    主站蜘蛛池模板: 午夜影视免费| 午夜视频免费看| 欧日韩美香蕉在线观看| 色丁香在线视频| 午夜剧场官网| 午夜三级福利| 奇米在线| 夜夜操天天干| 狠狠综合| 日本黄色三级视频| 四虎在线免费视频| 亚洲欧美成人综合久久久| 性做久久久久久网站| 欧美高清另类| 亚洲酒色1314狠狠做| tube日本videos69| 国产精品久久久久久久久久妇女| 在线毛片网| 色综合天天综合网国产成人| 亚洲网色| 人人澡人人草| 国产黄色高清视频| 国产精品高清一区二区三区| 最新免费jlzzjlzz在线播放| 免免费看片| 在线观看一二三区| 亚洲成人精品| 亚洲w码欧洲s码免费| 欧美色婷婷天堂网站| 免费精品| 黄色片网站大全| 性试验k8经典| 天天激情综合| 2017天天干| h视频免费在线| 亚洲最大的成人网| 亚洲成人伊人网| 色在线视频网站| 狠狠尻| 失禁h啪肉尿出来高h| 午夜大片网|