如何在Ability内替换Slice,防止返回键返回上一个Slice?

如题,如果直接 addActionRoute 用 Intent跳转,用过的Slice不会销毁,按返回键还会退回上一个Slice。如何避免这样的情况发生,使Ability内始终只有一个Slice?

延迟用terminate销毁历史,会有退出动画一闪而过,效果不太好。

Ability
Slice
鸿蒙
2022-07-19 16:09:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Raoeym
3

系统为每个Page维护了一个AbilitySlice实例的栈,每个进入前台的AbilitySlice实例均会入栈。当开发者在调用present()或presentForResult()时指定的AbilitySlice实例已经在栈中存在时,则栈中位于此实例之上的AbilitySlice均会出栈并终止其生命周期。但如果导航时指定的AbilitySlice实例均是新建的,则新的AbilitySlice实例会入栈。同样的,点击返回按钮就是将当前栈顶的AbilitySlice出栈。

综上:楼主可以尝试使用单例AbilitySlice实例进行跳转。

参考链接:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-page-switching-0000000000037999

分享
微博
QQ
微信
回复
2022-07-19 17:03:53
相关问题
如何在Native侧构建一个ArkTS对象
204浏览 • 1回复 待解决
PageAbility配合多个Slice实现页面间切换
11911浏览 • 4回复 已解决
entry中如何拉起另一个Module中的Ability
1939浏览 • 1回复 待解决
如何在全局实现一个自定义dialog弹窗
254浏览 • 1回复 待解决
如何在自定义函数中创建一个UI组件
215浏览 • 1回复 待解决
JAVA UI 怎么返回页?
5161浏览 • 2回复 已解决
fetch返回no internet
5389浏览 • 2回复 已解决
如何监听手机“返回”物理按键?
8151浏览 • 2回复 已解决
如何设置全屏返回的动效
180浏览 • 1回复 待解决
返回sdkmgr: command not found
1719浏览 • 1回复 待解决