【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第1题) 原创

鸿蒙张荣超
发布于 2021-8-23 11:07
浏览
33收藏

【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第1题)-鸿蒙开发者社区第1道模拟题来自于华为官方公布的模拟试题。这道题考查的知识点是:使用隐式方式在不同Page间导航。当我们由源Page导航到目标Page时,假设目标Page有多个AbilitySlice,可以在目标Page中调用方法setMainRoute(),将默认的路由指定为某个AbilitySlice。那么,如何直接路由到目标Page的某个AbilitySlice呢?

 

    大家来看这个例子对应的示例代码(附件中可下载示例代码):

【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第1题)-鸿蒙开发者社区

PageA包含两个AbilitySlice:分别是AbilitySliceA1和AbilitySliceA2,其中默认展示的是AbilitySliceA1,因为在PageA中调用了方法setMainRoute(),将默认的路由指定为了AbilitySliceA1。那么,如何直接路由到PageA的AbilitySliceA2呢?

 

    只需要3步就可以实现:

第1步,在配置文件config.json中注册目标Page”PageA”对应的action,比如取名为"action.zrc.test"。

第2步,在源Page”PageB”或他对应的AbilitySliceB中,在调用方法startAbility()进行导航时,对于作为参数的Intent实例,通过调用方法withAction()来指定刚才第1步中注册的action。

第3步,在目标Page”PageA”中,调用方法addActionRoute()为AbilitySliceA2添加路由,其中,第1个参数指定第2步中指定的action,第2个参数指定AbilitySliceA2。

只需要这3步就可以了。

 

    所以,这道题的答案是A、B、C。

    选项D是一个干扰项,题干中明确提到是在当前设备中进行导航,而DeviceId的默认值为空字符串,表示的就是当前设备,所以,无需在当前设备中设置DeviceId为空。

 

    向大家推荐由我的教学团队开发的视频课程《鸿蒙应用开发HCIA认证超细致精讲》:

https://edu.51cto.com/course/28571.html

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
示例代码.zip 1.28M 122次下载
已于2021-8-23 11:07:08修改
42
收藏 33
回复
举报
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

感谢张老师细致讲解。

回复
2021-8-23 11:51:06
回复
    相关推荐