我无法弄清楚如何正确实现主菜单。以下是:
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
任何建议都是高度评价的。 最诚挚的问候!
答案 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()。
这真的很棒!