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

让我说我有一个带菜单的基本活动,当我点击菜单项A时,它转到活动A.我再次打开菜单,然后转到B.从BI返回到A,然后回到第四个这样的一会儿。

因此堆栈将是A,B,A,B,A,B ……当我按下后退按钮时,它会按预期向后移动通过堆栈。

但是让我说我​​不想要这个function,所以我添加到我的清单, android:noHistory="true" 。 因此,当我点击后退按钮时,它退出应用程序而不是通过堆栈。

现在幻觉使它看起来,让我们说如果我在活动A,我使用菜单并去活动B,堆栈将只是B,因为我不能回到A.

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

或者当noHistory="false" ,后退按钮是否只是再次调用startAcitvity(intent) ,或者它是否经历了实例化的每个新副本?

我关注资源问题,而不是放慢用户Android设备的速度。

Solutions Collecting From Web of "android:noHistory =“true”是如何工作的?"

来自关于noHistory的文档 :

值“true”表示活动不会留下历史记录。 它不会保留在任务的活动堆栈中,因此用户将无法返回该任务。

关于你的问题:

A,B,A,B,A,B的真正堆栈是否存在?

文档将表明没有。

我关注资源问题,而不是放慢用户Android设备的速度。

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

android:noHistory =“true”的作用: –

假设您已经打开了“您的应用”。

你现在在主页上活动,

之后,您将进入另一个(第二个)活动。在第二个活动中,您按下移动设备的主页按钮或打开其他应用程序。

现在再次打开“你的应用程序”它将转到应用程序的主页,而不是去你离开应用程序的活动(即第二个活动)。

我的应用程序中有很少的碎片,按下后退按钮而不进入我的应用程序的Launcher Activity似乎很难进入主屏幕。 我在我的应用程序的启动器Activity的清单中使用了android:noHistory =“true”,现在问题得到了解决。