完成以前的活动,android?

时间:2014-03-18 10:25:54

标签: android android-activity

我有这个申请流程:

活动1->活性2->活性3->家庭活动

现在,当用户从Activity3切换到Home Activity时,我希望完成之前的所有活动。因此用户无法前往以前的活动。

我不想使用finish(),因为所有3个活动都在填充。

我试过

  Intent.FLAG_ACTIVITY_CLEAR_TOP

但它似乎不起作用

3 个答案:

答案 0 :(得分:9)

正确的方法是使用意图标志FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TASK。

Intent homeIntent=new Intent(this,HomeActivity.class);

       homeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(homeIntent);

CLEAR_TASK将清除任务中的所有先前活动(如果有),并使新活动(HomeActivity)成为任务的根活动。该标志应与FLAG_ACTIVITY_NEW_TASK结合使用。

如果您在ActivityHome(正常情况下没有任何标记)并且想要返回到activity_1并且还想要关闭activity_2和activity_3以从任务中清除,则应使用Intent.FLAG_ACTIVITY_CLEAR_TOP以防万一。

答案 1 :(得分:2)

try with android:nohistory="true" in manifest file

答案 2 :(得分:-1)

嗨,我不确定你在做什么,一旦我面临同样的问题,所以与你分享 如果您使用addFlags而不是使用此setFlags 尝试使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);代替intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Intent intent = new Intent(getApplicationContext(),
        DesiredActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);