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
我们如何开始第二项活动并从堆栈中删除第一项活动
答案 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一起使用。