【问题标题】:How to exit onBackPressed method in android studio?如何在android studio中退出onBackPressed方法?
【发布时间】:2022-01-29 13:51:28
【问题描述】:

我开发了一个带有启动画面和登录页面的安卓应用。问题是当用户提供凭据并按下登录按钮时,它会打开 controlActivity。但是当我按下后退按钮时,我会再次导航到登录页面如果我再次按下后退按钮,我会导航到启动屏幕。 当用户按下返回按钮然后应用退出时,如何停止导航到上一页?

【问题讨论】:

    标签: java android android-studio exit onbackpressed


    【解决方案1】:

    为什么会这样?


    发生这种情况是因为每当您从 Intent 打开另一个 Activity 时,它都会在其上创建它。

    如何解决问题?


    1. 您可以像这样添加标志
    Intent intent = new Intent(this, SecondActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    

    1. 你可以完成它。
    Intent intent = new Intent(this, SecondActivity.class);
    startActivity(intent);
    finish();
    

    如果要关闭应用onBackPressed,可以重写该方法。将此添加到您的活动中。

    @Override
    public void onBackPressed(){
        finish();
        System.exit(0);
    }
    

    执行此操作后,应用程序将在按下后关闭!

    【讨论】:

    • 我已经编辑了我的答案。希望有帮助
    【解决方案2】:

    您需要在您想被遗忘的活动中放置一个标志。

    Intent intent = new Intent(this, Main2Activity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    

    【讨论】:

    • 它停止返回但应用程序没有关闭? 我也需要退出 onBackPressed ?
    【解决方案3】:

    @Sambhav Khandelwal 的回答应该可以解决您的问题。在您的初始屏幕中,您需要添加带有以下意图的标志:

    Intent intent = new Intent(SplashScreenActivity.this, LoginActivity.class); //assuming your splash screen name as SplashScreenActivity and login as LoginActivity
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    

    或者你可以不使用下面的标志:

    Intent intent = new Intent(SplashScreenActivity.this, LoginActivity.class);
    startActivity(intent);
    finish();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 2019-03-28
      • 2021-02-05
      • 1970-01-01
      相关资源
      最近更新 更多