将所有子活动关闭到父活动

时间:2012-12-17 18:11:34

标签: android android-activity

如果我有以下

家长活动&gt;活动1&gt; <活动2>活动3

按后退按钮将返回: 家长活动&gt;活动1&gt;活动2

再按一次将转到: 家长活动&gt;活动1

有什么方法可以编程完成活动3本身的活动1,2和3。

在IOS中有一个名为popToRootViewControllerAnimated的函数,这是我在Android中需要的概念类型

感谢

4 个答案:

答案 0 :(得分:1)

使用startActivityForResult()启动子活动,然后在onActivityResult()调用finish()。这将带您回到父活动。

或者,您也可以在活动3的父活动上调用startActivity()时使用Intent标志FLAG_ACTIVITY_CLEAR_TOP

答案 1 :(得分:1)

在您从上一个活动中调用startActivity时添加标记Intent.FLAG_ACTIVITY_CLEAR_TOP。它将清除活动堆栈

答案 2 :(得分:0)

如果你来自activity3,请检查activity2的onResume()并调用finish(),如果是的话。对于activity1也是如此。

答案 3 :(得分:0)

也许这个算法很有用;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch(keyCode)
    {
    case KeyEvent.KEYCODE_BACK:
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //here you'll check if activity3 alive then join
            //else if activity2 alive then join
            //else if activity1 alive then join
            //else finish(); 
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}