在Android中来回切换活动

7

我正在学习Android,有一个初学者问题是如何在多个活动之间进行切换。

我知道可以通过调用Intent并使用setResult()来在两个活动之间切换。但我想知道如何在多个活动之间跳转,特别是我想了解进程的生命周期。我知道每个活动都是从onCreated()开始启动的,但当我想回到一个活动时,不确定如何实现onResume()或onRestart()。

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

我从Activity1开始,然后使用Intent调用Activity2,Activity2再调用Activity3。使用按钮。现在我想从Activity3返回Activity1。我也是这样做的。创建一个Intent并调用startActivity(Activity1_Intent)。但会出现运行时错误。

我认为需要实现OnResume()或onRestart(),但我不确定如何做。在onCreate()中我创建了一个GridView,那么当我回来时,我需要再次创建吗?

如果有人能给一个简短的解释或者提供一份教程,那就太好了。非常感谢。


如果您能发布导致运行时错误的代码以及错误的堆栈跟踪,我们可以在回答中更具体。 - Janusz
在启动另一个活动之前,请先完成()第一个活动。 - success_anil
2个回答

7
在您的清单文件中将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:如果设置了该标志,并且要启动的活动已经在当前任务中运行,则不会启动该活动的新实例,而是关闭其上方的所有其他活动,并将此 Intent 作为新 Intent 传递给(现在在顶部)旧活动。

FLAG_ACTIVITY_NEW_TASK:如果设置了该标志,则此活动将成为此历史记录堆栈上新任务的开始。

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


1
自 Android 4.0 开始,您可以在 Manifest 文件中设置 android:launchMode="singleTask",这样就不需要编写 Java 代码了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接