覆盖android

时间:2016-04-15 03:44:34

标签: android android-intent android-activity

我刚刚学会了如何清除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按钮相同。

3 个答案:

答案 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);
}