1

我无法弄清楚如何正确实现主菜单。以下事情正在发生:

MainMenu -> ActivityA -> ActivityB -> ActivityC -> MainMenu

当我回到 MainMenu 时,我想抑制能够返回 ActivityC(以及 ActA 和 ActB)。我的第一个线索是覆盖后退按钮并做一些讨厌的事情,比如通过它的 PID 杀死应用程序,但我知道这是不鼓励的,所以......

有许多有趣的意图标志,例如 FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_NEW_TASK 或 FLAG_ACTIVITY_NO_HISTORY,但它们都不起作用。FLAG_ACTIVITY_CLEAR_TOP 导致当我到达主菜单时立即关闭应用程序(迄今为止最好的结果......),其他的根本没有效果,按下返回刚刚返回到 ActivityC。我对它们都进行了测试,不仅是这四个,所有活动标志......我还测试了为主菜单定义 android:clearTaskOnLaunch="true" ,但没有成功。

哦,是的,我正在处理 2.2,API 级别 8

任何建议都受到高度赞赏。最好的祝福!

4

2 回答 2

0

必须覆盖 MainActivity 中的 OnKeyDown 方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //TODO: killing the App by its PID 
        return false;
    } else {
        return super.onKeyDown(keyCode, event);
    }
}
于 2013-01-31T07:41:55.550 回答
0

这里建议的解决方案是完美的:

https://stackoverflow.com/a/8678500/1841940

我在所有应该从后台删除的活动上注册一个广播监听器,当我到达主菜单时,我只发送广播,所有接收器都调用完成()。

这真的很棒!

于 2013-02-03T19:10:35.897 回答