ArkTS #02# Ability的调用及启动模式

news/2025/3/18 15:09:03/文章来源:https://www.cnblogs.com/xkxf/p/18341556

1调用&单实例

import common from '@ohos.app.ability.common'
import Want from '@ohos.app.ability.Want'
@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Button('jump ab2 ').fontSize(55).onClick(() => {// 1 获取上下文let context = getContext(this) as common.UIAbilityContext// 2 封装wantlet want: Want = {deviceId: "",bundleName: "com.example.myapplication",moduleName: "entry",abilityName: "EntryAbility1",}// 3 调用上下文的start ab  启动 目标abcontext.startAbility(want)})}.width('100%')}.height('100%')}
}

单实例是Ability的默认启动模式,因此,无需在module.json5中配置EntryAbility1

2多实例

      {"name": "EntryAbility1","srcEntry": "./ets/entryability1/EntryAbility1.ts","description": "$string:EntryAbility1_desc","icon": "$media:icon","label": "$string:EntryAbility1_label","startWindowIcon": "$media:icon","startWindowBackground": "$color:start_window_background","launchType": "standard",
//        多实例启动方法 , 可以 独立多开}

3指定实例

从index跳转,在Want中附带个体信息:

import common from '@ohos.app.ability.common'
import Want from '@ohos.app.ability.Want'
@Entry
@Component
struct Index {@State numbers: number[] = []index: number = 0build() {Row() {Column() {Row() {if (this.numbers.length <= 0) {Text('please add numbers !!!!!').fontSize(55)} else {ForEach(this.numbers, x => {Text(x.toString()).fontSize(55).border({width: 1}).onClick(() => {let context = getContext(this) as common.UIAbilityContextlet want: Want = {deviceId: "",bundleName: "com.example.myapplication",moduleName: "entry",abilityName: "EntryAbility1",parameters: {myKey: x.toString(),},}context.startAbility(want)})})}}Button('add').fontSize(55).onClick(() => {this.index++this.numbers.push(this.index)})}.width('100%')}.height('100%')}
}

未知步骤:

import AbilityStage from '@ohos.app.ability.AbilityStage';
import Want from '@ohos.app.ability.Want';export default class MyStage extends AbilityStage {onAcceptWant(want: Want) {if (want.abilityName === 'EntryAbility1') {return "" + want.parameters.myKey}return ""}
}

改module.json5:

{"module": {"name": "entry","type": "entry","description": "$string:module_desc","mainElement": "EntryAbility","srcEntry": "./ets/MyStage.ets","deviceTypes": ["phone","tablet"],

改:

export default class EntryAbility1 extends UIAbility {onCreate(want, launchParam) {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');let myKey = want.parameters.myKeyAppStorage.SetOrCreate("_myKey", myKey)}

接参数:

@Entry
@Component
struct PageDetail {myKey: string = AppStorage.Get("_myKey")build() {Column() {Text(this.myKey).fontSize(66).fontColor(Color.Red)Text("page detail here. ").fontSize(66).fontColor(Color.Red)}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/777723.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware虚拟机版OpenCore引导,Vmware安装苹果系统

使用Windows下的VMware虚拟机安装macOS系统,常规安装都需要使用到unlocker解锁工具.而直接使用OpenCore引导安装,就可以不使用unlocker解锁工具也能安装macOS系统,使用OpenCore引导的优点还是有的,比如改三码或五码还是比较方便,这里将最近配置的OpenCore引导分享给大家一起研究…

开发在线客服系统新的宣传推广站【微客客服】

打造一个软件宣传官网,这事儿可不简单。咱们得先搞清楚,这个网站要给谁看,要传达啥信息,需要哪些功能。我们网站是宣传【在线客服系统】的,所以需要把主要功能展示清楚 在线网址:https://weikefu.com.cn然后,咱们得设计一番,把网站的布局、界面和用户体验给搞定。接下来…

Java - 异常与File

异常灵魂四问:如果try中没有遇到问题,怎么执行?try全部执行,catch不执行如果try中可能会遇到多个问题,怎么执行?写多个catch与之对应,父类异常需要写在下面如果try中遇到的问题没有被捕获,怎么执行?异常会默认交给虚拟机处理,try...catch白写如果try中遇到了问题,那…

费马点(到三角形顶点之和最小的点)

2024_8_4 费马点(到三角形顶点之和最小的点) 1.如果有度数大于120的角,则该点为费马点。 2.否则为某条边为底边往外作正三角形,将外面的点与这条边以外的那个点连线就为最短长度。 \[f(X, \, Y, \, Z) = \sqrt{\frac{a^2+b^2+c^2+4\sqrt{3}S}{2}}. \]

ComfyUI插件:ComfyUI layer style 节点(四)

前言: 学习ComfyUI是一场持久战,而ComfyUI layer style 是一组专为图片设计制作且集成了Photoshop功能的强大节点。该节点几乎将PhotoShop的全部功能迁移到ComfyUI,诸如提供仿照Adobe Photoshop的图层样式、提供调整颜色功能(亮度、饱和度、对比度等)、提供Mask辅助工具、…

ABC365

A link题目已经说的很明白了,判断即可。点击查看代码 #include<bits/stdc++.h>using namespace std;int y;signed main(){cin >> y;if(y%4 != 0) cout << 365;else if(y%4 == 0&&y%100 != 0) cout << 366;else if(y%100 == 0&&y%400 …

没闲着系列 21

离上个20记录已经3个月了。 这3个月我算体会到了什么是欠缺项目管理导致的项目失败。 当然,有一部分我认为项目是没有失败的,但有一部分也是个人原因,但不多。 算了,不去想之前的糟心事,讲一讲TaskSaas近期更新了什么吧。首先还是关于迭代需求,现在不创建迭代不允许新增需…

5、Qt-pyqt6常用基本控件 - 按钮控件

Buttons -- 按钮类控件名 说明PushButton 按钮ToolButton 工具按钮RadioButton 单选按钮CheckBox 复选框CommandLinkButton 命令链接按钮DialogButtonBox 对话框按钮盒🕹 1. PushButton 按钮控件这是最常用的控件之一,允许用户通过单击来执行操作 该控件既可以显示文本也可以…