首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理后台堆栈并正确导航

如何管理后台堆栈并正确导航
EN

Stack Overflow用户
提问于 2015-04-27 11:32:36
回答 3查看 191关注 0票数 0

我有3个活动在应用程序,比如说A,B和C,从A我可以导航到B或C。因此,可能的工作流有两种方法:

  1. A>>B >>C (接受输入,然后根据B中前面选定的公式开始计算)
  2. >> C>> B及其公式选择后返回C

问题

现在,在第1种情况下,如果用户被导航到显示的路径,我希望用户以我指的在B的反向按下的方式返回A>B>C,他应该转到C,然后转到A:

但在第二种情况下,我想让用户从C转到A,我的意思是在C中打开B不应该在用户按回时导航到B。换句话说,如果用户使用我的第二种情况导航,他应该是A而不是C。

在这种情况下我如何处理这个问题。

EN

回答 3

Stack Overflow用户

发布于 2015-04-27 11:39:46

基本上不覆盖您的活动中的反压,让android为您处理回退活动。

在第一个Usecase中:当您从MainActivity-->ActivityFormula-->ActivityMath.导航在这里,当你向后按下序列时,顺序会很明显地相反。

在第二个Usecase中:当您从MainActivity->ActivityMath导航时,不要将ActivityFormula保存在堆栈中,因此回压不会转到ActivityFormula。

票数 0
EN

Stack Overflow用户

发布于 2015-04-27 12:42:19

@案例1,如果你自己还没有关闭A和B,它就会按照你的意愿工作。不要覆盖任何东西。

@case 2,只要启动B,就可以简单地使用finish() C。在ActivityC中编写以下代码:

代码语言:javascript
复制
Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
finish();
票数 0
EN

Stack Overflow用户

发布于 2015-04-27 15:36:44

第一个Usecase:ActivityA-->ActivityB-->ActivityC.的意图在这里,当你向后按下序列时,顺序会很明显地相反。

第二步:当nevigate ActivityA->ActivityC时,导航“ActivityC”-“ActivityB”时使用finish();

并在ActivityB Intent to ActivityA中使用

代码语言:javascript
复制
 @Override
    public void onBackPressed() {
        Intent i = new Intent(ActivityC.this , ActivityB.class);
        startActivity(i);
         finish(); 
    }

告诉我..。如果仍然得不到解决

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29894550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档