如何在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
相关问题
fetch返回no internet
4203浏览 • 2回复 已解决
如何监听手机“返回”物理按键?
5582浏览 • 2回复 已解决
JAVA UI 怎么返回页?
2607浏览 • 2回复 已解决
entry中如何拉起另一个Module中的Ability
617浏览 • 1回复 待解决
PageAbility配合多个Slice实现页面间切换
9170浏览 • 4回复 已解决
如何打开指定文件夹,选择文件返回
3084浏览 • 1回复 待解决
storage.get返回[pc Preview]: no system
2249浏览 • 1回复 待解决
鸿蒙Webview加载Url,alipay无法返回
3117浏览 • 1回复 待解决
如何调用并测试一个wifi接口?
1808浏览 • 1回复 待解决
真机运行http请求没有返回
875浏览 • 1回复 待解决
如何通过DevEco新建一个js/ts的module?
1669浏览 • 1回复 待解决
鸿蒙 如何实现一个渐变的圆形图片;
7925浏览 • 2回复 已解决