0

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

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

4

2 回答 2

1

如果 A1、A2 和 A3 都是你的实例,MyActivity你就不能这样做,因为没有办法告诉 AndroidMyActivity你想把哪个实例带到前面。

但是,如果您创建 3 个新活动(A1A2A3,每个活动都派生自MyActivity,那么您可以通过Intent.FLAG_ACTIVITY_REORDER_TO_FRONT在启动这些活动时设置标志来做到这一点。

您需要在清单中包含所有 4 个活动 ( MyActivity, A1, A2, )。A3

你会有这样的东西:

public class A1 extends MyActivity {
}

public class A2 extends MyActivity {
}

public class A3 extends MyActivity {
}

MyActivity'onClick() when you start an activity (eitherA1 ,A2 orA3`) 中,您可以这样做:

Intent intent = new Intent(this, A1.class); // or A2 or A3
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
于 2012-09-18T17:24:43.237 回答
0

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

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
于 2012-09-18T17:27:15.177 回答