HarmonyOSApp开发的页面周期和配置文件(一)

APP开发


浏览:666 次

图像.png

1、 运行在HarmonyOS上的App有两种形式:

-需要安装的传统App。

-无需安装即可提供特定功能的App(即雾化服务)。

2、 配置文件cnfig.json

“发行版”:{

“deliveryWithInstall”:true,

“moduleName”:“条目”,

“moduleType”:“条目”,

“installationFree”:false

},

**安装免费**

指示当前FA是否支持免安装功能。

True:表示支持免安装功能并且满足免安装约束。

False:表示不支持免安装功能。需要在手机上安装App

3、 Java开发模式中Ability和AbilitySlice的生命周期

在HarmonyOS中,Ability(可以比喻为Android的活动)和AbilitySlice(可以比喻成Android的碎片)是页面的基本单位。用户操作或系统管理以及其他行为将导致页面实例在其生命周期中的不同状态之间切换。

能力生命周期审查

图像.png

-开始()

当系统首次创建Page实例时,会触发此回调。对于Page实例,回调在其生命周期内只触发一次,并且Page在逻辑之后将进入INACTIVE状态。开发人员必须重写此方法并配置此处默认显示的AbilitySlice。

-OnActive()类似于Android中的onResume()

页面将在进入INACTIVE状态后到达前台,然后系统将调用此回调。之后,页面进入ACTIVE状态,即App与用户交互的状态。页面将保持此状态,除非某种事件导致页面失去焦点,例如用户单击返回键或导航到其他页面。当这种事件发生时,页面将被触发返回到INACTIVE状态,系统将调用onInactive()回调。此后页面可以返回到活动状态,

-OnInactive()类似于Android中的onPause()

当页面失去焦点时,系统将调用此回调,然后页面将进入INACTIVE状态。当页面在该回调中失去焦点时,开发人员可以实现适当的行为。

-打开背景()

如果页面对用户不再可见,系统将调用此回调以通知开发人员用户释放相应的资源,然后页面将进入背景状态。当页面在此回调中不可见时,开发人员应该释放无用的资源,或者在此回调中执行耗时的状态保存操作。

-OnStop()类似于Android中的onDestory()

当系统即将销毁页面时,将触发此回调函数以通知用户释放系统资源。页面破坏的可能原因包括:

用户可以通过系统管理功能关闭指定页面。例如,使用任务管理器关闭页面。

用户行为触发对Page的termineAbility()方法的调用,例如,使用App的exit函数。

配置更改会导致系统临时销毁页面并重新生成。

出于资源管理的目的,系统会自动触发后台状态下页面的销毁。

AbilitySlice生命周期

AbilitySlice作为页面的组成单元,其生命周期取决于其所属页面的生命周期。AbilitySlice和Page具有相同的生命周期状态和同名回调。当页面的生命周期发生变化时,其AbilitySlice也将发生相同的生命周期变化。

当页面中出现AbilitySlice的导航切换时,其生命周期更改将独立于页面的生命周期更改

AbilitySlice生命周期回调类似于Page的相应回调。由于AbilitySlice托管特定页面,开发人员必须重写AbilitySlice的onStart()回调,并在此方法中通过setUIContent()方法设置页面,如下所示:

@覆盖

protected void onStart(意图意图){

super.onStart(意图);

setUIContent(资源表.Layout_main_Layout);

}

例如:在同一Abil A->B的生命周期的两个切片之间跳跃

1 A->B(第A页转到第B页)

B中的生命周期:

QQ截图20210608152115.png

2 B->A(B页返回A页)

B的生命周期:

图像.png

3页面B切换到背景

图像.png

4页面B从背景切换到前景

图像.png