主菜单:android上的任务和backstack

时间:2013-01-31 05:48:44

标签: android

我无法弄清楚如何正确实现主菜单。以下是:

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

当我回到MainMenu时,我想要能够回到ActivityC(和ActA& ActB同样)。我的第一个线索是覆盖后退按钮并做一些令人讨厌的事情,比如通过它的PID杀死App,但我知道这是劝阻,所以......

有许多有趣的标记,例如FLAG_ACTIVITY_CLEAR_TOP,FLAG_ACTIVITY_NEW_TASK或FLAG_ACTIVITY_NO_HISTORY,但它们都不起作用。 FLAG_ACTIVITY_CLEAR_TOP会在我到达主菜单时立即关闭应用程序(到目前为止最好的结果......),其他人根本没有效果,只需返回返回ActivityC。 我测试了所有这些,不仅仅是这四个,所有活动标志......我还测试了主菜单定义android:clearTaskOnLaunch =“true”,但没有成功。

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

任何建议都是高度评价的。 最诚挚的问候!

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:0)

这里建议的溶剂是完美的:

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

我在应该从Backstack中删除的所有活动上注册BroadCastListener,当我到达主菜单时,我只发送广播,所有接收者都调用finish()。

这真的很棒!