0

我的要求是,当用户在应用程序的任何屏幕上单击主页按钮时,他将被重定向到设备主屏幕,当他返回应用程序时,他将重定向到应用程序主屏幕,而不是在他按下主页按钮的屏幕上。

任何帮助将不胜感激。

4

2 回答 2

0

下面是一些代码,您可以使用它来检测主页按钮的按下并调用适当的函数。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_HOME:
            finish();
            return true;
        }
    }

    return super.onKeyDown(keyCode, event);
}

或者

在 android manifest 中android:noHistory="true"对 Activity 进行设置,只要它不在前台,就会从堆栈中删除它。

于 2013-01-04T12:23:55.543 回答
0

正如您所说,当您从任何屏幕按下主屏幕按钮时,您想进入主屏幕。因此,您最好采用如下所示的BaseActivity扩展Activity和内部覆盖onKeyDown()

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_HOME:
            // Implement starting Home Activity with Clear Top
            return true;
        }
    }

    return super.onKeyDown(keyCode, event);
}

然后使用而不是 Activity 扩展您的所有BaseActivity活动。这样每个 Activity 都可以获得 onKeyDown() 功能,以便在您按下 Home 按钮的任何地方,它都会导航回 HomeScreen 并删除所有 Activity。

于 2013-01-04T12:31:08.043 回答