Java 后退按钮->;模拟主页按钮

Java 后退按钮->;模拟主页按钮,java,android,Java,Android,如果按“后退”按钮,我想隐藏我的应用程序 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { this.moveTaskToBack(true); return true; } retur

如果按“后退”按钮,我想隐藏我的应用程序

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

但是我的应用程序关闭了。我做错了什么?我建议你重新考虑一下。如果每个应用程序都允许按自己的意愿使用按钮,那么就不可能在用户体验中保持一定的一致性


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

你必须覆盖活动类的
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();   
}
您可以尝试以下方法:

 Intent intent2 = new Intent(getApplicationContext(), MainActivity.class);
        intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent2.putExtra("EXIT", true);
        startActivity(intent2);
并进入您的主要活动:

在onCreate()中编写


试试这个。通过将活动保留在后面,它会将您发送到主屏幕

您的意思是后退按钮应该像主页按钮一样工作吗。如果是这样的话,试试这个

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

将此项添加到您的活动中,将使您的应用程序看起来像是在响应“主页”按钮单击事件,并且您的应用程序将隐藏但不关闭。

可能有帮助您的意思是崩溃?为什么不调用Finish?如果我按BAck按钮,我想模拟HOME按钮。@Amisono:运行我的答案,看看它是否有效。:)不它对我不起作用。可能它不起作用,因为我使用了TabActivity?您可以在tab activity中重写onBackPressed()。TabActivity已被弃用,因此使用Fragmentsany评论实现您的应用程序是一个好主意。您是如何得出这个结论的?
@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);
}