在开发人员设置中设置不保持活动标志时,清除两个给定活动之间的活动堆栈

时间:2013-03-21 12:12:05

标签: android

我有一个应用程序,其中我从活动A-> B-> C-> D移动。 现在我希望当我按下D上的按钮时,我的堆栈应该是A-> D。我已经从android API级别8到10完成了这个,但是在android 4.0上我有" 不保留活动"在后台杀死我的活动的设置,从而制作Intent.FLAG_ACTIVITY_CLEAR_TOP         和Intent.FLAG_ACTIVITY_NEW_TASK无用,因为我的活动a还没有活着。

我该如何处理这种情况。 任何帮助都是非常好的。

1 个答案:

答案 0 :(得分:0)

不要保留活动我认为它是开发人员选项来模拟一个场景。

我用来清理堆栈的东西,在你的情况下只有活动B和C,就是在那些活动上注册广播,并在用户按下按钮时从D活动中启动一个意图。

public void onClick(View v){
 Intent broadcastIntent = new Intent();
 broadcastIntent.setAction("com.package.CLEAR_B_C");
 sendBroadcast(broadcastIntent);
}

所以当B和C收到意图时,请调用finish()。

See that post and the answer from Francesco Laurita