1

如果按 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

4 回答 4

1

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

@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();   
}
于 2013-07-17T13:00:07.633 回答
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);
}

将此添加到您的 Activity 中,将使您的应用看起来像是在响应 Home Button Click 事件,并且您的应用将隐藏但不会关闭。

于 2013-07-17T19:46:56.993 回答
-1

you can try this:

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

And into your MainActivity:

Write this in onCreate()

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

Try this. It will send you to the HomeScreen.

于 2013-07-17T13:10:17.573 回答
-3

我建议你重新考虑。如果每个应用程序都可以随意使用按钮,那么用户体验就不可能保持一定的一致性。

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

于 2013-07-17T12:54:55.053 回答