【问题标题】:Is there a way for a Android app to return directly to the activity it started with?有没有办法让 Android 应用程序直接返回到它开始的活动?
【发布时间】:2012-05-31 00:33:03
【问题描述】:

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

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

【问题讨论】:

标签: android


【解决方案1】:

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

FLAG_ACTIVITY_REORDER_TO_FRONT

来自android docs

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

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

否则,如果您想完成此活动(并将它们从后台堆栈中删除),您可以使用 this other flag 启动活动 a(来自 d):

FLAG_ACTIVITY_CLEAR_TOP

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      使用命令

      finish():
      

      您将返回主页

      或者写一个指向a的意图

      【讨论】:

        【解决方案4】:

        您可以通过Intents向不同的Activities发送信息。

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

        别忘了在AndroidManifest.xml 中添加您的Activities

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

        1. how to use Android intents

        2. how to switch to another activity with a button click

        【讨论】:

          猜你喜欢
          • 2015-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-12
          • 1970-01-01
          • 2013-07-03
          相关资源
          最近更新 更多