微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:活动A – > C,但C – > B – > A通过后退按钮,怎么做?

我有三个活动: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上放置一个新活动,所以这里有两个问题:

>堆栈可以根据用户行为快速增长
>可以很难摆脱你的applcaiton(可能很难让你的堆栈变空)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐