从一个Activity类控制活动实例

时间:2012-09-18 16:39:36

标签: android android-intent

请帮帮我这个问题。 示例我有Activity类MyActivity。我启动此Activity并将此实例称为“Home”。在这个活动中,我有三个按钮。 调用:Button1,Button2,Button3。 当我单击一个按钮时,它将启动另一个MyActivity实例。 那么,我可以这样做:

我点击Button1开始A1,点击Button2开始A2,然后Button3开始A3。我们将有这样的活动堆栈:home - > A1 - > A2-> A3。 在活动A3(MyActivity的一个实例)上。当我点击Button1时,我可以将A1移到前面而不是创建新的吗? 我想知道我能这样做吗?

2 个答案:

答案 0 :(得分:1)

如果A1,A2和A3都是MyActivity的实例,则无法执行此操作,因为无法告诉Android您要将哪个MyActivity实例带到前面。

但是,如果您创建3个新活动(A1A2A3),每个活动都来自MyActivity,那么您可以通过设置开始这些活动时标记Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

您需要在清单中完成所有4项活动(MyActivityA1A2A3

你会有这样的事情:

public class A1 extends MyActivity {
}

public class A2 extends MyActivity {
}

public class A3 extends MyActivity {
}

并在MyActivity中,在'onClick()when you start an activity (either A1 , A2 or A3`)中,您可以这样做:

Intent intent = new Intent(this, A1.class); // or A2 or A3
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

答案 1 :(得分:0)

在开始新活动之前,请尝试使用此标志

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);