我刚刚学会了如何清除Android中的backstack。我有两个活动,一个用于登录(LoginActivity),另一个用于使用应用程序(MainActivity)。它由一堆碎片组成。这是我用来启动MainActivity的代码
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish(); // call this to finish the current activity
一切正常,当我在MainActivity上并按下home
按钮时,应用程序关闭。当我打开它时,它会打开MainActivity。但是当我按下back
按钮时,它正在关闭应用程序,当我打开它时,LoginActivity正在打开。如何覆盖back
按钮,使其行为与home
按钮相同。
答案 0 :(得分:7)
听起来你想要覆盖后退按钮行为,将应用程序移动到后台而不是执行通常的后退按钮行为。
您可以通过覆盖onBackPressed
:
@Override
public void onBackPressed()
{
moveTaskToBack(true);
}
答案 1 :(得分:1)
您可以使用activity的方法。
来自活动,
-ObjC
来自片段,
onBackPress()
答案 2 :(得分:0)
您可以在MainActivity的onBackPressed()中启动Luncher应用程序,似乎您按下主页按钮。
根据:Going to home screen programmatically
@Override
public void onBackPressed() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}