2015-11-06 53 views
0

假设我有一个应用程序,其中主要活动流是A - > B。但是,用户可以直接将应用程序启动到B中,在这种情况下,它是堆栈中唯一的活动。我希望用户启动进入B,并且仍然能够通过后面或通过左上角的“弹出窗口”到达A.将活动插入根堆栈

返回键的最佳解决方案是关于重写onBackPressed(),并且我明白“弹出式堆栈”按钮的含义略有不同。不过,我真的很好奇,如果真的必须首先获得A - > B堆栈而不首先显示A,也就是说,不允许“在屏幕上快速闪烁A并尽可能快地启动B” 。

+0

最好的解决方案是让用户从A启动B,但从不直接B. – Nanoc

回答

2

你有两个选择:

  1. 正如你所说,B的onBackPressed(),您可以通过意图和完成()活动B.启动活动A的操作Here有一些示例代码,你可以量身定制您的需求。

  2. 启动活动每当用户请求A或B时,然后在您的A的onCreate中标识用户的意图,并调用活动B(并将A添加到堆栈中)或继续显示A的UI。请注意,活动只有在onCreate完成后才可见,因此不会有任何闪烁会中断用户。查看this获取关于Activity生命周期的更多信息。

+1

酷!解决方案2正是我需要知道的,尽管我一直在寻找另一种不太适合的解决方案:http://developer.android.com/training/implementing-navigation/ancestral.html。这就是为什么SO这么多次无价。 – Fabio