【发布时间】:2022-01-29 13:51:28
【问题描述】:
我开发了一个带有启动画面和登录页面的安卓应用。问题是当用户提供凭据并按下登录按钮时,它会打开 controlActivity。但是当我按下后退按钮时,我会再次导航到登录页面如果我再次按下后退按钮,我会导航到启动屏幕。 当用户按下返回按钮然后应用退出时,如何停止导航到上一页?
【问题讨论】:
标签: java android android-studio exit onbackpressed
我开发了一个带有启动画面和登录页面的安卓应用。问题是当用户提供凭据并按下登录按钮时,它会打开 controlActivity。但是当我按下后退按钮时,我会再次导航到登录页面如果我再次按下后退按钮,我会导航到启动屏幕。 当用户按下返回按钮然后应用退出时,如何停止导航到上一页?
【问题讨论】:
标签: java android android-studio exit onbackpressed
发生这种情况是因为每当您从 Intent 打开另一个 Activity 时,它都会在其上创建它。
Intent intent = new Intent(this, SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
或
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
finish();
如果要关闭应用onBackPressed,可以重写该方法。将此添加到您的活动中。
@Override
public void onBackPressed(){
finish();
System.exit(0);
}
执行此操作后,应用程序将在按下后关闭!
【讨论】:
您需要在您想被遗忘的活动中放置一个标志。
Intent intent = new Intent(this, Main2Activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
【讨论】:
@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();
【讨论】: