【问题标题】:exiting the app when back button is pressed按下返回按钮时退出应用程序
【发布时间】:2014-03-25 02:21:38
【问题描述】:

我认为这个问题已经被问过好几次了,但这是一个不同的场景。我有 4 个活动,比如 act1、act2、act3、act4,并且我已经提出了这样的意图:act1->act2->act3->act4

act1-分支选择,
act2年选择,
act3-主题选择,
act4-显示选定的主题
用户可以从act4按下后退按钮,它会移动到act3并且可以选择不同的主题,类似地,当他在act3上按下后退按钮时,它会移动到年份选择活动,即 act2.so 我希望 3 个活动 act1、act2、act3 还活着,所以我没有编写完成方法。我在 act4 中放置了主页按钮,这导致了 act1。
当我在 act1 中按下后退按钮时,应用程序应该关闭,但它形成一个循环,并且所有打开的 prevoius 活动都出现了。如果这个问题太长,请提供解决方案抱歉

【问题讨论】:

    标签: android


    【解决方案1】:

    从活动 4 回到活动 1 时应关闭所有活动,如以下代码,使用标志 Intent.FLAG_ACTIVITY_CLEAR_TOP

    Intent it = new Intent(Activity4.this, Activity1.class);
    it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(it);
    

    因此,在您的活动 1 中,当您按下后退按钮时,它将完成应用程序。

    希望对你有帮助!

    【讨论】:

    • 这个只关闭了act4,而不是act3,act2当我在act1中按下后退按钮时这些仍然出现
    【解决方案2】:

    在 app1 中添加:

    @Override
    public void onBackPressed() {
    Intent startMain = new Intent(Intent.ACTION_MAIN);
           startMain.addCategory(Intent.CATEGORY_HOME);
           startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
           startActivity(startMain);
     }    
    

    【讨论】:

    • 但是这个指向主页,但是如果我想获取打开应用程序的页面,我应该在上面的代码中修改什么
    • 我认为你想要一个正常的意图,就像@giacomoni 有 post.Intent it = new Intent(ActivityYouAre.this, ActivityYouWanToGo.class); it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);开始活动(它);
    • 不,我想退出应用程序,但上面的代码退出了应用程序,但出现了主屏幕,我想在它退出后获取我打开它的应用程序页面
    • 你想关闭你的APP,当你再次打开时显示你离开的地方,或者你想关闭和ACTIVITY并显示之前的ACTIVITY?
    【解决方案3】:

    它应该是这样工作的。现在在你的堆栈中,你有 act1 -> act2 -> act3 -> act4 -> act 1。 因此,当您从 act1 按下返回按钮时,它只会打开 act4。您需要做的是,当从 act4 启动 act1 时,将 FLAG_ACTIVITY_CLEAR_TOP 标志添加到您的意图中。此标志的作用是要求 android 操作系统从后台堆栈中删除以前的活动。

    【讨论】:

      【解决方案4】:

      这可能不是最好的方法..但是您可以覆盖 act1 的 onBackPressed 按钮并编写

      System.exit(0);
      

      这将立即关闭应用程序。 也可能有更好的解决方案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多