android:noHistory="true" 是如何工作的?

2024-03-24

假设我有一个带有菜单的基本活动,当我单击菜单项 A 时,它会转到活动 A。我再次打开菜单,然后转到 B。从 B 返回到 A,这样来回一会儿。

所以堆栈将是 A, B, A, B, A, B, .... 当我按下后退按钮时,它会按预期向后浏览堆栈。

然而,假设我不想要这个功能,所以我添加到我的清单中,android:noHistory="true"。因此,当我点击后退按钮时,它会退出应用程序,而不是遍历堆栈。

现在,幻觉看起来似乎如此,假设我在活动 A 中,我使用菜单并转到活动 B,堆栈将只是 B,因为我无法返回到 A。

但是,当使用noHistory="true",A,B,A,B,A,B的真实堆栈是否存在?相反,是否通过使用菜单实例化该活动的新副本来每次调用活动,但用户看不到它?这会导致资源问题吗?

Or when noHistory="false",后退按钮是否只是调用类似的东西startAcitvity(intent)再次还是会遍历实例化的每个新副本?

我担心资源问题而不是减慢用户 Android 设备的速度。


来自docs http://developer.android.com/guide/topics/manifest/activity-element.html about noHistory:

值为“true”意味着该活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回到它。

关于你的问题:

A、B、A、B、A、B 的真实堆栈是否存在?

文档会表明没有。

我担心资源问题而不是减慢用户 Android 设备的速度。

你真的不需要担心这个。当内存不足时,操作系统应该处理活动的清理。活动中位图或逻辑的不当使用更有可能导致性能下降。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android:noHistory="true" 是如何工作的? 的相关文章

随机推荐