Android - 在5个活动之间切换并保留第一个活动的状态

时间:2012-04-20 03:31:24

标签: java android eclipse arcgis

我有5种不同的活动。

第一个活动是我的应用程序的第一页。它顶部有一个导航栏,允许我在所有5个活动之间移动。 (导航栏出现在所有活动的xml布局中)

我面临的问题是每当我回到另一个活动(例如活动1到活动2)之后(活动2到活动1),我的活动1将不会渲染MapView。当应用程序没有切换活动时,MapView可以正常工作。

我目前正在使用此代码在活动之间移动:

活动1中的代码

startActivity(new Intent(Activity1.this, Activity2.class));

活动2中的代码

startActivity(new Intent(Activity2.this, Activity1.class));

目前我设法回到活动1的唯一方法是按下手机的后退按钮。但是我将面临另一个问题。

如果我在两个以上的活动之间移动(例如活动1到活动2和活动3),后退按钮将从活动3转到活动2,最后转到活动1。(我发现了一些stackoverflow上的示例来克服这个问题)

由于我没有正确配置,导致MapView的主要问题无法呈现?

或者它是由我在活动之间切换的方式引起的?

1 个答案:

答案 0 :(得分:1)

对于您的第一个问题,我建议您调查Intent.setFlags(Intent.FLAG_ACTIVITY_???)

的方法和参数

例如,在您的示例中,您可以这样做:

活动1中的代码

// No change here
startActivity(new Intent(Activity1.this, Activity2.class));

活动2中的代码

Intent i = new Intent(Activity2.this, Activity1.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);

这将停止构建一堆活动并需要大量后退按钮才能退出应用程序。使用您的5个活动,您的主Activity1应使用默认值来启动Activity2,3,4和5,所有其他活动应使用FLAG_ACTIVITY_REORDER_TO_FRONT在它们之间切换回Activity1。

对于您的第二个问题,我们需要更多信息 - 我可以建议您实际从此处删除问题并将其作为单独的查询重新发布,以及相关代码和LogCat输出。它很可能与开始活动没有直接关系。