0

我只是在学习Android编程。我理解它的方式是服务像堆栈一样工作,是否有办法让活动返回到启动应用程序的第一个活动,而不仅仅是前一个活动。

例如,假设我有 4 个活动,a、b、c、d。有没有办法让活动 d 有一个可以调出活动 a 的按钮?而不是活动d去c,c回到b???

4

4 回答 4

1

您可以重新开始活动a,但在您的意图中使用标志:

FLAG_ACTIVITY_REORDER_TO_FRONT

来自安卓文档

如果在传递给 Context.startActivity() 的 Intent 中设置,则此标志将导致已启动的活动被带到其任务历史堆栈的前面(如果它已经在运行)。

使用它,您将重用已经运行的活动实例而不是启动一个新实例。请注意,这样做,活动bcd的实例将保留在后堆栈中(现在在活动a之后)。

否则,如果您想完成此活动(并将它们从后台堆栈中删除),您可以使用其他标志启动活动a(从d):

FLAG_ACTIVITY_CLEAR_TOP

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

编辑:如果您还没有阅读,这是一个很好的阅读资源: Tasks 和 Back Stack

于 2012-05-31T00:40:54.747 回答
0

是的,你可以这么做。您只需将活动 a 的意图编码到按钮。

于 2012-05-31T00:35:44.733 回答
0

使用命令

finish():

您将返回主页

或者写一个指向

于 2012-05-31T00:38:25.457 回答
0

Activities您可以通过将信息发送到不同的地方Intents

Intent myIntent = new Intent(this, AvitivityName.class);
startActivity(myIntent);

不要忘记添加您的Activitiesin AndroidManifest.xml

这里有一些关于 Android 的教程Intents

  1. 如何使用 Android 意图

  2. 如何通过单击按钮切换到另一个活动

于 2012-05-31T01:10:41.147 回答