【问题标题】:Switching activities back and forth in Android在Android中来回切换活动
【发布时间】:2010-09-22 12:55:52
【问题描述】:

我刚开始使用 Android,遇到了一个关于在多个活动之间切换的初学者问题。

我知道我可以通过调用一个意图然后使用 setResult() 返回来在两个活动之间切换。我想知道的是如何在多个活动之间跳转。具体来说,我想了解流程生命周期。我了解每个活动是如何在 onCreated() 开始的,但我不确定当我想回来时如何实现 onResume() 或 onRestart()。

所以基本上我有 3 个活动:Activity1、Activity2 和 Activity3。

我从 Activity1 开始,然后使用 Intent 调用 Activity2,Activity2 调用 Activity3。使用按钮。现在我想从 Activity3 回到 Activity1。我在这里也做同样的事情。创建一个 Intent 并调用 startActivity(Activity1_Intent)。但它给出了运行时错误。

我认为我需要实现 OnResume() 或 onRestart(),但我不确定如何执行此操作。在onCreate()中我做了一个gridView,所以当我回来的时候,我需要再做那个gridView吗?

如果有人能对参考教程给出一个小的解释,那就太好了。 非常感谢。

【问题讨论】:

  • 如果您可以发布导致运行时错误的代码以及错误的堆栈跟踪,我们可以在我们的答案中更加具体。
  • finish() 第一个活动,然后再开始另一个活动。

标签: android switch-statement


【解决方案1】:

在您的清单文件中,将 android:launchMode="singleTop" 设置为您的 Activity1。

然后调用您的 Activity1 使用:

Intent intent = new Intent(this, Activity1 .class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

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

FLAG_ACTIVITY_NEW_TASK:如果设置,此活动将成为此历史堆栈上新任务的开始。

http://developer.android.com/reference/android/content/Intent.html

【讨论】:

    【解决方案2】:

    从 Android 4.0 开始,您只需在 Manifest 文件中设置 android:launchMode="singleTask" 即可,无需编写 Java。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多