Android finishAndRemoveTask dosenot启动第二个活动

时间:2017-08-21 07:27:30

标签: android

Android finishAndRemoveTask dosenot启动第二项活动

这是第一项活动

Intent i = new Intent(currentAct.this, secondAct.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                i.putExtra("abcd", j);
                startActivity(i);

               finishAndRemoveTask();

如果我不添加finishAndRemoveTask();,则可以正常使用secondAct starts

这是清单

       <activity
        android:name="currentAct"
        android:noHistory="true"
        android:theme="@style/Theme.AppCompat.Translucent"
        android:taskAffinity=".ShortCutActivity">

    </activity>

    <activity
        android:name="secondAct"
        android:noHistory="true"
         android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
        android:taskAffinity=".ShortCutActivity">

ShortCutActivity只是mainactivity

我们如何开始第二项活动并从堆栈中删除第一项活动

2 个答案:

答案 0 :(得分:2)

在调用startActivity(intent)之前使用它

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 1 :(得分:1)

您应该添加标记FLAG_ACTIVITY_CLEAR_TASK以启动意图。

Intent intent = new Intent(this, Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

参考docs

  

如果在传递给Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务。也就是说,活动成为否则为空任务的新根,并且任何旧活动都已完成。这只能与FLAG_ACTIVITY_NEW_TASK一起使用。