0

我有 5 种不同的活动。

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

我面临的问题是,每当我在返回(Activity 2 到 Activity 1)之前移动到另一个活动(例如 Activity 1 到 Activity 2)时,我的 Activity 1 不会在其中呈现 MapView。当应用程序没有切换活动时,MapView 工作正常。

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

活动 1 中的代码

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

活动 2 中的代码

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

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

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

MapView 的主要问题是不是因为我没有正确配置而导致的?

还是我在活动之间切换的方式造成的?

4

1 回答 1

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 输出。它很可能与开始活动没有直接关系。

于 2012-04-20T04:29:39.570 回答