2010-09-22 62 views
7

我开始使用Android,并且在多个活动之间切换时遇到了初学者问题。在Android中来回切换活动

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

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

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

我想我需要实现OnResume()或onRestart(),但我不知道如何做到这一点。在onCreate()我做了一个GridView,所以当我回来时,我需要再次制作该GridView吗?

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

+0

如果您可以发布导致运行时错误的代码以及错误的堆栈跟踪,我们可以在我们的答案中更加具体。 – Janusz 2010-09-22 13:08:23

+0

在开始另一个之前完成()第一个活动。 – 2010-09-22 13:49:53

回答

7

在您的清单文件集android:launchMode =“singleTop”到您的Activity1。

然后打电话给你的活动1用途:

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:如果设置,以及正在启动的活动在目前的任务已经运行,然后,而不是推出该活动的一个新实例,所有的在其上的其他活动将被关闭,并且这个意图将作为新的意图被传递到(现在在顶部)旧活动。

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

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

1

由于Android 4.0,你可以在清单文件机器人只需设置:launchMode = “singleTask”然后就没有必要写Java。