使用FLAG_ACTIVITY_NEW_TASK从Backstack中删除活动无法正常工作

时间:2016-07-02 19:54:26

标签: android android-activity

我希望在用户导航到另一个活动后清除后台堆栈中的调用活动(以便用户无法返回该活动)。我看到了其他问题,发现我可能需要使用FLAG_ACTIVITY_NEW_TASK,这看似合乎逻辑,但不知何故它不起作用。

我没有得到什么?我需要做些什么改变? 问候。

这是代码

 public void silentLogin(String username,String password)
{
    user = dbHelper.getUser(username,password);
    if(user!=null) {
        Intent intent = new Intent(this,MainActivity.class);
        intent.putExtra("USER_OBJECT",user);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
        Log.d("Info","Performing silent login now...");
        startActivity(intent);
    }
    else
    {
        Toast.makeText(this,"not registered",Toast.LENGTH_LONG).show();
    }

}

2 个答案:

答案 0 :(得分:1)

使用

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

答案 1 :(得分:1)

要从Backstack中删除调用活动,只需在启动新活动后调用finish()。完成的活动不在后台。