在Android中启动活动清除顶部

时间:2013-04-25 09:53:54

标签: android android-intent android-activity

我的堆栈中有以下活动:

A , B , C, D 

我想重新启动B以获得此堆栈:

A , B'

其中B'是一个新的B实例(不是旧的接收onNewIntent回调,我怎么能这样做?

顺便说一句,我正在使用

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

启动B活动但这样调用onNewIntent而不是启动新实例

2 个答案:

答案 0 :(得分:5)

在清单文件中使用android:noHistory = true来清除特定活动。希望这可以解决您的问题。

答案 1 :(得分:2)

这里当你使用这个代码时,它带你进行活动B.在B你按回按钮它带你去A。

Intent fromDtoB = new Intent(this,B.class);
fromDtoB.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(fromDtoB);

FLAG_ACTIVITY_CLEAR_TASK:如果在传递给Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务。

FLAG_ACTIVITY_CLEAR_TOP:如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将传递此意图作为新意图的(现在在顶部)旧活动。