后退按钮 - >模仿主页按钮

时间:2013-07-17 12:51:34

标签: java android

如果按BACK按钮,我想要隐藏我的应用程序。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  
{
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
     {
        this.moveTaskToBack(true);
        return true;
     }
    return super.onKeyDown(keyCode, event);
}

但我的应用关闭了。我做错了什么?

4 个答案:

答案 0 :(得分:1)

您必须覆盖Activity类的onBackPressed()方法。 以下是代码示例:

@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);
}

此外,您必须在子活动中覆盖onBackPressed()方法:

@Override
public void onBackPressed() {
    this.getParent().onBackPressed();   
}

答案 1 :(得分:0)

通过将活动保持在后面,您的意思是后退按钮应该像主页按钮一样。如果是这样的话,试试这个,

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

将此添加到您的“活动”中会使您的应用看起来像是对主页按钮点击事件做出响应,您的应用会隐藏但不会关闭。

答案 2 :(得分:-1)

你可以试试这个:

 Intent intent2 = new Intent(getApplicationContext(), MainActivity.class);
        intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent2.putExtra("EXIT", true);
        startActivity(intent2);

进入您的MainActivity:

将此内容写入onCreate()

if (getIntent().getBooleanExtra("EXIT", false)) {
            finish();
        }

试试这个。它会将您发送到 HomeScreen

答案 3 :(得分:-3)

我建议你重新考虑一下。如果允许每个应用程序按照他们希望的那样使用按钮,则不可能在用户体验中保持一定的一致性。

物理按钮应该对所有应用程序都一样。一位教授告诉我一次:“你的应用程序没什么特别的。”不是因为它不是很好,只是它应该最佳地遵循某些标准,以免混淆用户。