清除活动堆栈android

时间:2012-04-05 12:44:23

标签: android stack android-activity

嗨我已经阅读了关于该主题的stackoverflow上的很多帖子,但我仍然无法解决问题。 我需要清除我的活动堆栈,但是下面的命令doest工作:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

我也尝试了以下api 15 android4.0.3

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

注意似乎有用。

这是完整的方法代码

@Override
    public void onBackPressed() {
        super.onBackPressed();

        Intent intent = new Intent(this, FiltriAnagraficaPagina.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);
    }

3 个答案:

答案 0 :(得分:1)

尝试

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)

答案 1 :(得分:0)

这可能会对你有所帮助

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addCategory(Intent.CATEGORY_HOME); 

//////////////////////////////////// 根据您的评论编辑

as you start activity B
finish activity A
and on backpress of activity B
start activity A

答案 2 :(得分:0)

在您的活动中覆盖 onKeyDown()方法而不是onBackPressed()

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {


    if (keyCode == KeyEvent.KEYCODE_BACK) {

       Intent intent = new Intent(this, FiltriAnagraficaPagina.class);
           intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
           startActivity(intent);
        return true;
        }
     return super.onKeyDown(keyCode, event);
}