用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙 Ability 讲授(页面生命周期、背景服务、数据访问 ...
鸿蒙 Ability 讲授(页面生命周期、背景服务、数据访问) ...
我可以不吃啊
论坛元老
|
2024-12-26 13:40:45
|
显示全部楼层
|
阅读模式
楼主
主题
1033
|
帖子
1033
|
积分
3099
先自我先容一下,小编浙江大学结业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,每每是本身探索发展,但本身不成体系的自学结果低效又漫长,而且极易碰到天花板技术故步自封!
因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有得当小白学习的零基础资料,也有得当3年以上履历的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比力多,这里只是将部门目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲门路、讲授视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
正文
五、结语
一、Ability用途
<hr> 在知道用法之前,首先你是不是得知道这个
Ability
怎么读?对了,
Ability
(音译 :阿B了D),中文意思就是能力,不要给我扯什么音标啥的,不好使,你仔细想一下,你是由于英语学得好才来当程序员的吗?To young to simple!
Ability
是应用所具备能力的抽象,也是应用程序的重要组成部门。一个应用可以具备多种能力(即可以包含多个 Ability),HarmonyOS 支持应用以 Ability 为单位进行部署。Ability 可以分为 FA(Feature Ability)和 PA(Particle Ability)两种范例,每种范例为开发者提供了不同的模板,以便实现不同的业务功能。
从上面一段文字,去其糟粕,取其英华之后就是两点。
FA(Feature Ability)
和
PA(Particle Ability)
FA(Feature Ability)
(音译:非ture 阿B了D),中文意思是功能能力,它支持
Page Ability
页面能力用于提供与用户交互的能力。一个Page 可以由一个或多个 AbilitySlice 构成,AbilitySlice 是指应用的单个页面及其控制逻辑的总和。
一个 Page 可以包含多个 AbilitySlice,但是 Page 进入前台时界面默认只展示一个AbilitySlice。默认展示的 AbilitySlice 是通过
setMainRoute()
方法来指定的。如果需要更改默认展示的 AbilitySlice,可以通过
addActionRoute()
方法为此 AbilitySlice 配置一条路由规则。此时,当其他 Page 实例期望导航到此 AbilitySlice 时,可以在 Intent 中指定 Action。
addActionRoute()
方法中使用的动作定名,需要在应用配置文件(
config.json
)中注册:
好比
PA(Particle Ability)
(音译:趴踢扣 阿B了D),这个内里也是支持两个能力,
Service Ability
和
Data Ability
我相信你知道它们的意思,就是服务能力和数据能力。Service用于提供背景运行使命的能力。Data 用于对外部提供同一的数据访问抽象。在配置文件(config.json)中注册 Ability 时,可以通过配置 Ability 元素中的“type”属性来指定 Ability 模板范例,示比方下。其中,“type”的取值可以为“page”、“service”或“data”,分别代表 Page 模板、Service 模板、Data 模板。结合下面这个图来看知道是怎么回事了,type的属性值取决于你创建Ability是选择的范例,当然你也可以后面再改。
二 、Page Ability讲授
<hr> 如今我们知道这个Page Ability是主要负责页面交互的,那么就可以明白为Android 的Activity。那么都知道Activity有生命周期,同样的Page Ability也是的。下面来看看它的生命周期。
① Page Ability 生命周期
首先来看官方的一张图
重点看蓝色方框的。粉红色的是当前应用的状态。
声明周期分别是
onStart()
、
onActive()
、
onInactive()
、
onBackground()
、
onForeground()
、
onStop()
下面来看看具体的解释
onStart()
当系统初次创建
Page Ability
实例时,触发该回调。对于一个
Page Ability
实例,该回调在其生命周期过程中仅触发一次,
Page Ability
在该逻辑后将进入 INACTIVE 状态。开发者必须重写该方法,并在此配置默认展示的 AbilitySlice。如下图所示
和onCreate有点像。
onActive()
Page Ability
会在进入 INACTIVE 状态后来到前台,然后系统调用此回调。
Page Ability
在此之后进入ACTIVE 状态,该状态是应用与用户交互的状态。
Page Ability
将保持在此状态,除非某类事件发生导致
Page Ability
失去焦点,好比用户点击返回键或导航到其他
Page Ability
。当此类事件发生时,会触发
Page Ability
回到 INACTIVE 状态,系统将调用
onInactive()
回调。今后,
Page Ability
大概重新回到ACTIVE 状态,系统将再次调用
onActive()
回调。因此,开发者通常需要成对实现
onActive()
和
onInactive()
,并在
onActive()
中获取在
onInactive()
中被释放的资源。类似于Android的onResume。
onInactive()
当
Page Ability
失去焦点时,系统将调用此回调,今后 Page 进入 INACTIVE 状态。开发者可以在此回调中实现 Page 失去焦点时应表现的恰当举动。类似于Android的onPause和onStop的集合体。
onBackground()
如果
Page Ability
不再对用户可见,系统将调用此回调通知开发者用户进行相应的资源释放,今后
Page Ability
进入 BACKGROUND 状态。开发者应该在此回调中释放
Page Ability
不可见时无用的资源,或在此回调中实行较为耗时的状态生存操作。
onForeground()
处于 BACKGROUND 状态的
Page Ability
仍然驻留在内存中,当重新回到前台时(好比用户重新导航到此
Page Ability
),系统将先调用 onForeground()回调通知开发者,而后 Page 的生命周期状态回到 INACTIVE 状态。开发者应当在此回调中重新申请在 onBackground()中释放的资源,末了 Page 的生命周期状态进一步回到 ACTIVE 状态,系统将通过 onActive()回调通知开发者用户。
onStop()
系统将要销毁
Page Ability
时,将会触发此回调函数,通知用户进行系统资源的释放。销毁 Page 的大概原因包罗以下几个方面:
▪ 用户通过系统管理能力关闭指定
Page Ability
,比方使用使命管理器关闭
Page Ability
。
▪ 用户举动触发
Page Ability
的 terminateAbility()方法调用,比方使用应用的退出功能。
▪ 配置变动导致系统临时销毁
Page Ability
并重修。
▪ 系统出于资源管理目的,自动触发对处于 BACKGROUND 状态
Page Ability
的销毁。
OK,
Page Ability
的生命周期就讲完了,具体要熟悉的话还是从现实开发中获取才行。
② AbilitySlice 生命周期
先来看下面这张图
说实话一开始创建项目的时候就只有这个
MainAbility
和
HelloWorld
以及slice包下的
MainAbilitySlice
,后来新建了一个
SecondAbility
,而
SecondAbilitySlice
是自动生成的,这说明一个题目,它们之间有不可告人的秘密。那么下面就戳穿这个秘密,摊牌了,它们是一对好基友。
解释:
AbilitySlice
作为
Page Ability
的组成单元,其生命周期是依托于其所属
Page Ability
生命周期的。
AbilitySli
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
我可以不吃啊
论坛元老
这个人很懒什么都没写!
楼主热帖
如何编写一个高效的Testbench? ...
HeadPose Estimation头部姿态估计头部 ...
微信小程序
Python输出指定时间间隔内的日期 ...
【笔者感悟】笔者的学习心得【七】 ...
Python 将 docx 转为 PDF
HBuilder X 连接苹果手机(IOS)详细教程 ...
CVE-2015-5254漏洞复现
接口测试测什么?这篇文章告诉你 ...
线程池,我是谁?我在哪儿? ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Oracle
快速回复
返回顶部
返回列表