我有三个活动:A,B,C.
活动A可以从B或C开始.
当A开始C时,我可以返回A,只需按下后退按钮.但是我希望“返回”到B然后再回到A(再次按下后退按钮).
我尝试以这种方式使用TaskBackStack:
final TaskStackBuilder builder = TaskStackBuilder.create(this)
.addParentStack(this)
.addNextIntent(new Intent(this, B.class))
.addNextIntent(new Intent(this, C.class));
builder.startActivities();
但它不起作用……任何人都可以帮助我吗?
对不起我的英文,并提前感谢
解决方法:
在尝试回答您的问题之前,我对您在活动之间导航的方法有一些评论.一般来说,这种方法不是一个好主意,因为这样做,你不会遵循Android导航模式,这可能会使你的应用程序不是用户友好的,因为大多数Android应用程序使用导航模式.
Android导航模式says:
Temporal navigation, or navigation between historical screens, is deeply rooted in the Android system. All Android users expect the Back button to take them to the prevIoUs screen, regardless of other state. The set of historical screens is always rooted at the user’s Launcher application (the phone’s “home” screen). That is, pressing Back enough times should land you back at the Launcher, after which the Back button will do nothing.
但是,使用Android模式在应用程序中导航还有另一种可能性,但我认为这不是解决您问题的方法.你可以看看Up Navigation
最后,我有一个关于使用覆盖OnBackpressed()来启动新活动的解决方案的相关评论.你应该真的避免这种情况,因为使用它,你可以让你的年代导航变得疯狂.因为当你在OnBackpressed中创建一个活动时,你总是在Android Stack上放置一个新活动,所以这里有两个问题: