购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.6 实战:Page与AbilitySlice生命周期示例

为了更好地理解Page与AbilitySlice生命周期,本节将用一个示例来演示。采用Car设备类型,创建一个名为PageAndAbilitySliceLifeCycle的应用。

5.6.1 修改MainAbilitySlice

在初始化应用时,PageAndAbilitySliceLifeCycle应用已经包含一个主AbilitySlice,即MainA-bilitySlice。对MainAbilitySlice进行修改,代码如下:

在MainAbilitySlice类中:

(1)MainAbilitySlice重写了AbilitySlice的生命周期回调方法。

(2)在每个生命周期回调方法中,通过HiLog日志工具将状态进行输出,以便能够在控制台看到实时的状态。

(3)在Text中增加了单击事件,以便导航到其他AbilitySlice。

5.6.2 增加PayAbilitySlice

复制MainAbilitySlice的代码,创建一个PayAbilitySlice类并进行修改。PayAbilitySlice代码如下:

在PayAbilitySlice类中:

(1)PayAbilitySlice重写了AbilitySlice的生命周期回调方法。

(2)在每个生命周期回调方法中,通过HiLog日志工具将状态进行输出,以便能够在控制台看到实时的状态。

(3)在Text中增加了单击事件,以便导航到其他AbilitySlice。

5.6.3 新增PayAbilitySlice样式布局

在layout目录下新建一个ability_pay.xml,提供给PayAbilitySlice样式布局使用,代码如下:

5.6.4 实现AbilitySlice之间的路由

为了实现AbilitySlice之间的路由和导航,在MainAbility中,通过addActionRoute()方法添加到PayAbilitySlice的路由,代码如下:

其中,上述action.pay是指定路由动作的名称。该名称还需要在config.json的actions数组中进行添加,配置如下:

5.6.5 运行

在Car模拟器中运行该应用,如图5-9所示。

图5-9 在Car模拟器中运行应用

此时,能看到控制台输出如下内容:

从上述日志可以看出,MainAbilitySlice已经启动并处于ACTIVE状态。

单击文本Hello World,可以切换到Pay me the money界面,如图5-10所示。

图5-10 切换到Pay me the money界面

此时,能看到控制台输出如下内容:

从上述日志可以看出,MainAbilitySlice失去了焦点并处于INACTIVE状态,而PayAbilitySlice启动并处于ACTIVE状态,最终MainAbilitySlice进入BACKGROUND状态。

再次单击文本Pay me the money,可以切换到Hello World界面,如图5-11所示。

图5-11 切换到Hello World界面

此时,能看到控制台输出如下内容:

从上述日志可以看出,PayAbilitySlice失去了焦点并处于INACTIVE状态,而MainAbilitySlice启动并处于ACTIVE状态,最终PayAbilitySlice进入BACKGROUND状态。

单击模拟器的Back按钮,返回Pay me the money界面,如图5-12所示。

图5-12 返回Pay me the money界面

此时,能看到控制台输出如下内容:

从上述日志可以看出,MainAbilitySlice失去了焦点并处于INACTIVE状态,而PayAbilitySlice重新回到前台并处于ACTIVE状态,最终MainAbilitySlice进入BACKGROUND状态并被销毁。

再次单击模拟器的Back按钮,返回Hello World界面。此时,能看到控制台输出如下内容:

从上述日志可以看出,PayAbilitySlice失去了焦点并处于INACTIVE状态,而MainAbilitySlice重新回到前台并处于ACTIVE状态,最终PayAbilitySlice进入BACKGROUND状态并被销毁。

再次单击模拟器的Back按钮,返回到了系统主界面,如图5-13 所示。

图5-13 返回系统主界面

此时,能看到控制台输出如下内容:

从上述日志可以看出,MainAbilitySlice先处于INACTIVE状态,接着进入BACKGROUND状态,最后被销毁。

单击系统主界面PageAndAbilitySliceLifeCycle应用图标,将进入PageAndAbilitySliceLifeCycle应用,如图5-14所示。

图5-14 进入PageAndAbilitySliceLifeCycle应用

此时,能看到控制台输出如下内容:

从上述日志可以看出,MainAbilitySlice启用并处于ACTIVE状态。 nSVdd1itCvXx1Ln+YIBtHV8QovzaGGxOLWQoitFNFPmfJF5Ujvqng0MF/TXaJ9T9

点击中间区域
呼出菜单
上一章
目录
下一章
×