2012-08-06 80 views
26

可以说,我有一个菜单基本活动,当我点击菜单项,它进入活动A.我再次打开菜单,然后转到B.从BI回去A,和背部和第四像这一段时间。android:noHistory =“true”如何工作?

因此,堆栈将是A,B,A,B,A,B,....当我按下后退按钮时,它会按预期往回穿过堆栈。

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

现在的错觉使得它看起来,可以说,如果我在活性的是,我用的菜单进入活动B,栈也只是B,因为我不能回去A.

但是,在使用noHistory="true"时,是否存在A,B,A,B,A,B的真实堆栈?相反,每次使用菜单实例化该活动的新副本时,都会调用某个活动,但用户看不到它?这会造成资源问题吗?

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

我很担心资源问题,而不是放慢一个用户的Android设备。

+0

您可以自己测试一下,看这个问题:http://stackoverflow.com/questions/4387875/view-activity-stack-in-android – Dalmas 2012-08-06 21:36:02

回答

31

docsnoHistory:“真”

值表示该活动不会留下历史痕迹。它不会留在任务的活动堆栈中,所以用户将无法返回到它。

关于你的问题:

没有A,B,A,B,A,B的真实堆栈存在吗?

的文档就表示没有。

我关心的资源问题,并没有减缓用户的Android设备。

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

相关问题