1

我正在构建一个包含许多活动的 Android GPS 应用程序。我的主屏幕是一个谷歌地图屏幕,它从远程数据库加载所有最近的位置。我还有其他可以从菜单按钮中选择的活动,例如列表模式、添加新位置、登录等。

当我按下列表模式(或任何其他活动)然后启动该活动并按下手机上的物理后退按钮时,我可以返回我的主屏幕,即我的地图活动,而无需重新启动和重新加载所有标记就像它在应用程序启动时所做的那样。但是,我的问题是,例如,当我处于列表模式,然后从菜单选项中按地图模式时,它会重新启动地图活动,以便重新检索位置。我希望能够按下这个地图模式按钮,然后像按下物理后退按钮一样恢复它。我怎样才能做到这一点?

4

3 回答 3

1

我相信您正在创建一个新的地图活动并将这个新实例放在活动堆栈的顶部。

所以你的活动堆栈看起来像这样:

  • 地图活动
  • 列出活动
  • 地图活动

如果我是对的,那么从这个“新”地图活动中按回来将带您回到列表活动。再次按下将带您进入原始地图活动(您正在寻找的活动。

因此,当您在 List Activity 中时,无需盯着一个新的 Map Activity,您只需简单地完成()那个。

查看此文档以进一步阅读意图标志: 意图标志

于 2013-03-25T18:57:48.650 回答
0

我会看看这个:管理活动生命周期。我有一个类似类型的应用程序,我需要“缓存”地图数据,以便我必须重新加载它。我以此为参考。

于 2013-03-25T18:03:03.600 回答
0

在您的清单中,将 Map 活动的启动模式声明为 singleInstance。那我想你会没事的。来自http://developer.android.com/reference/android/R.styleable.html#AndroidManifestActivity_launchMode

只允许此活动的一个实例一直在运行。这个活动得到一个独特的任务,只有它自己在里面运行;如果它再次以相同的 Intent 启动,则该任务将被提前并调用其 Activity.onNewIntent() 方法。如果此活动尝试启动新活动,则该新活动将在单独的任务中启动。有关任务的更多详细信息,请参阅任务和回栈文档。

于 2013-03-25T23:37:53.410 回答