-1

嗨,我已经阅读了有关该主题的许多关于 stackoverflow 的帖子,但我仍然无法解决问题。我需要清除我的活动堆栈,但以下命令不起作用:

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);
    }
4

3 回答 3

1

尝试

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
于 2012-04-05T12:49:46.097 回答
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
于 2012-04-05T12:54:10.690 回答
0

在 Activity 中覆盖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);
}
于 2012-04-05T13:22:57.130 回答