【HarmonyOS】【DevEco Studio】NOTE05:PageAbility生命周期的呈现

简介: 【HarmonyOS】【DevEco Studio】NOTE05:PageAbility生命周期的呈现

基本界面设置


创建Slice与对应xml

q5.png

BarAbilitySlice

package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
public class BarAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_bar);
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

FooAbilitySlice

package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
public class FooAbilitySlice extends AbilitySlice{
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_foo);
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

ability_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">
    <Text
        ohos:id="$+id:text_bar"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="The Page Is Bar!"
        ohos:text_size="40vp"
        />
</DirectionalLayout>

ability_foo.xml

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">
    <Text
        ohos:id="$+id:text_foo"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="The Page Is Foo !"
        ohos:text_size="40vp"
        />
</DirectionalLayout>

设置主页面

MainAbility

package com.example.myapplication;
import com.example.myapplication.slice.FooAbilitySlice;
import com.example.myapplication.slice.MainAbilitySlice;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setMainRoute(FooAbilitySlice.class.getName());
    }
}

q4.png

跳转设置


BarAbilitySlice

package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Text;
public class BarAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_bar);
            Text text = findComponentById(ResourceTable.Id_text_bar);
            text.setClickedListener(listener -> present(new FooAbilitySlice(),new Intent()));
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

FooAbilitySlice

package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Text;
public class FooAbilitySlice extends AbilitySlice{
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_foo);
        Text text = findComponentById(ResourceTable.Id_text_foo);
        text.setClickedListener(listener -> present(new BarAbilitySlice(),new Intent()));
    }
    @Override
    public void onActive() {
        super.onActive();
    }
    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

q3.png

重写生命周期方法


按下Crtl+o选择你需要重写的方法

q2.png

q1.png

打印HiLog日志


FooAbilitySlice

package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Text;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
public class FooAbilitySlice extends AbilitySlice{
    public static final HiLogLabel loglabel = new HiLogLabel(HiLog.LOG_APP,0x11102,"FooAbilitySlice");
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_foo);
        Text text = findComponentById(ResourceTable.Id_text_foo);
        text.setClickedListener(listener -> present(new BarAbilitySlice(),new Intent()));
    }
    @Override
    public void onActive() {
        HiLog.info(loglabel,"[xrilang]FooAbilitySlice onActive start");
        super.onActive();
    }
    @Override
    protected void onInactive() {
        HiLog.info(loglabel,"[xrilang]FooAbilitySlice onInactive start");
        super.onInactive();
    }
    @Override
    protected void onBackground() {
        HiLog.info(loglabel,"[xrilang]FooAbilitySlice onBackground start");
        super.onBackground();
    }
    @Override
    public void onForeground(Intent intent) {
        HiLog.info(loglabel,"[xrilang]FooAbilitySlice onForeground start");
        super.onForeground(intent);
    }
    @Override
    protected void onStop() {
        HiLog.info(loglabel,"[xrilang]FooAbilitySlice onstop start");
        super.onStop();
    }
}

BarAbilitySlice

package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Text;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
public class BarAbilitySlice extends AbilitySlice {
    public static final HiLogLabel loglabel = new HiLogLabel(HiLog.LOG_APP,0x11103,"BarAbilitySlice");
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_bar);
            Text text = findComponentById(ResourceTable.Id_text_bar);
            text.setClickedListener(listener -> present(new FooAbilitySlice(),new Intent()));
    }
    @Override
    public void onActive() {
        HiLog.info(loglabel,"[xrilang]BarAbilitySlice onActive start");
        super.onActive();
    }
    @Override
    protected void onInactive() {
        HiLog.info(loglabel,"[xrilang]BarAbilitySlice onInactive start");
        super.onInactive();
    }
    @Override
    protected void onBackground() {
        HiLog.info(loglabel,"[xrilang]BarAbilitySlice onBackground start");
        super.onBackground();
    }
    @Override
    protected void onStop() {
        HiLog.info(loglabel,"[xrilang]BarAbilitySlice onStop start");
        super.onStop();
    }
    @Override
    public void onForeground(Intent intent) {
        HiLog.info(loglabel,"[xrilang]BarAbilitySlice onForeground start");
        super.onForeground(intent);
    }
}

q6.png

q5.png

q4.png

q3.png

可以在搜索处搜索tag、key、以及一些你想要的字符

分析HiLog日志



q2.png

q1.png

q1.png

相关文章
|
6月前
|
编解码 JavaScript 开发工具
鸿蒙应用开发从入门到实战(二):DevEco Studio工具安装
大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,欢迎关注!
567 1
|
9月前
|
JSON IDE 开发工具
鸿蒙开发:基于DevEco Studio插件实现组件化运行
切换模块之后,务必执行以下:Sync and Refresh Project,仅仅切换后执行一次即可,还有就是设置默认的启动页面,也就是每个模块第一次切换时设置一次即可,通常第一次配置之后,后续便不在配置。
239 23
鸿蒙开发:基于DevEco Studio插件实现组件化运行
|
11月前
|
人工智能 JavaScript API
【HarmonyOS NEXT+AI】问答03:找不到DevEco Studio Cangjie Plugin下载链接?
本文针对学员在“HarmonyOS NEXT+AI大模型打造智能助手APP(仓颉版)”课程中提出的问题进行解答:为何无法在华为开发者社区官网找到DevEco Studio Cangjie Plugin下载链接。文中详细介绍了Cangjie Plugin的功能及获取方式,包括STS和Canary版本的申请流程,并提供了学习仓颉编程语言的资源与建议。对于普通开发者,STS版本是当前首选;同时,通过课程与官方教程,可快速掌握仓颉语言核心语法及API,助力开发HarmonyOS NEXT AI智能助手应用。
642 3
【HarmonyOS NEXT+AI】问答03:找不到DevEco Studio Cangjie Plugin下载链接?
|
10月前
|
编解码 Java 开发工具
【HarmonyOS Next之旅】DevEco Studio的安装与环境配置
本教程详细介绍了使用DevEco Studio进行OpenHarmony开发的全流程,包括下载与安装、环境配置、项目准备及实用技巧。首先,以Windows环境为例,说明了DevEco Studio的运行要求、下载和安装步骤;接着,通过设置环境变量和配置SDK完成开发环境搭建;然后,讲解了项目创建、预览器和虚拟机的使用方法;最后,分享了中文插件安装和简化工程目录栏等小技巧,帮助开发者高效上手OpenHarmony开发。
1178 0
|
10月前
|
JavaScript Java 开发工具
零基础用 DevEco Studio 打造你的首个 HarmonyOS 应用,开启鸿蒙生态的创新之旅,实现你的技术探索梦想
在鸿蒙生态蓬勃发展的当下,越来越多的开发者怀揣着热情与创意,渴望投身于HarmonyOS应用开发的浪潮之中。
零基础用 DevEco Studio 打造你的首个 HarmonyOS 应用,开启鸿蒙生态的创新之旅,实现你的技术探索梦想
|
9月前
|
Shell 测试技术
鸿蒙开发:DevEco Studio中截屏和录屏功能
截屏和录屏都有两种实现方式,建议使用第一种即可,简单便捷,在实际的开发中,如果有需要向他人展示正在开发的应用的各种功能时,我们可以辅助截屏和录屏功能来实现。
381 0
鸿蒙开发:DevEco Studio中截屏和录屏功能
|
10月前
|
监控 数据可视化 API
HarmonyOS Next开发利器:DevEco Studio高效编码技巧 🚀
DevEco Studio是HarmonyOS Next开发的高效工具,助您提升编码效率与代码质量。核心功能包括:**代码阅读优化**(可视化标记、智能跳转、结构预览)、**规范维护**(自动化格式调整、注释管理)、**效率增强**(精准搜索、即时文档查阅)、**对象开发支持**(类结构分析、方法覆写)及**质量保障**(实时语法检测、自定义Linter规则)。掌握这些技巧,可显著提高HarmonyOS应用开发效率与代码可维护性!🚀
395 14
|
10月前
|
JavaScript 开发者 C++
HarmonyOS NEXT ArkUI生命周期终极指南 | 组件与页面的关系
本文是关于 HarmonyOS NEXT 中 ArkUI 生命周期的终极指南,深入解析组件与页面的关系及其生命周期特性。文章通过超全场景案例、隐藏技巧和避坑秘籍,帮助开发者轻松掌握生命周期管理。内容涵盖页面级(如 `onPageShow`、`onPageHide`)与组件级(如 `aboutToAppear`、`onDidBuild`)生命周期的区别与应用,并提供实战代码示例,包括基础版与高阶版用法。此外,还总结了十大避坑指南和神奇技巧,如实现页面停留统计与双击退出功能。掌握这些知识,助你精准控制 UI 更新,掌控组件与页面的生死轮回!
|
5月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
892 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
5月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
748 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章