1.UIAbility
UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互
UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态
- onCreate:在应用加载过程中,UIAbility实例创建完成时触发
- UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage
- Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发
- onForeground()回调,在UIAbility的UI界面可见之前
- onBackground()回调,在UIAbility的UI界面完全不可见之后
- Destroy状态在UIAbility实例销毁时触发
2.启动模式
- singleton单实例模型:系统中只存在唯一一个该UIAbility实例,即在最近任务列表中只存在一个该类型的 UIAbility实例。
- standard 多实例模式:都会在应用进程中创建一个新的该类 型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例
- multiton 多例:都会在应用进程中创建一个新的该类型UIAbility实例,会把之前存 在即在的UIAbility实例清空, 最近任务列表中可以看到有1个该类型的UIAbility实例。只是每次这个示例 都是新建的
- specified 指定实例模式:允许开发者为该实例创建一个唯一的字符串Key
3.context上下文对象
- 可获得相关配置信 息,如包代码路径、Bundle名称、Ability名称和应用程序需要的环境状态等属性信息(如startAbility()、connectServiceExtensionAbility()、terminateSelf()等)
- 获取:private context = getContext(this) as common.UIAbilityContext
4.实现UIAbility组件与UI之间的数据同步
- EventHub数据通信:
- globalThis数据同步:
- AppStorage数据同步:AppStorage是一个全局的状态管理器,适用于多个UIAbility共享同一状态数据的情况
- LocalStorage数据同步:适用于单个UIAbility内部使用的状态数据
5.UIAbility组件间交互(设备内)
- 启动应用内的UIAbility
从EntryAbility的页面中启动FuncAbility
在EntryAbility中:
在FuncAbility中:
6 want信息载体
对象间信息传递的载体,可以用于应用组件间的信息传递。