Android 从菜单启动时如何恢复活动?

Android 从菜单启动时如何恢复活动?,android,android-activity,resume,Android,Android Activity,Resume,我正在构建一个包含许多活动的Android GPS应用程序。我的主屏幕是谷歌地图屏幕,它从远程数据库加载所有最近的位置。我可以从菜单按钮选择其他活动,例如列表模式、添加新位置、登录等 当我按下列表模式(或任何其他活动),然后启动该活动,并按下手机上的物理后退按钮时,我可以返回到我的主屏幕,这是我的地图活动,而无需重新启动并重新加载所有标记,就像应用程序启动时一样。但是,我的问题是,当我处于例如列表模式,然后从菜单选项中按“地图模式”时,它会重新启动“地图”活动,以便重新检索所有位置。我想能够按下

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


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

我想看看这个:。我有一个类似的应用程序,我需要“缓存”地图数据,以便重新加载它。我用这个作为参考。

我想看看这个:。我有一个类似的应用程序,我需要“缓存”地图数据,以便重新加载它。我将此用作参考。

我相信您正在创建一个新的映射活动,并将此新实例放在活动堆栈的顶部

因此,您的活动堆栈如下所示:

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

因此,当您在列表活动中时,您不需要启动新的映射活动,只需完成该活动即可

查看此文档以进一步了解意图标志:

我相信您正在创建一个新的映射活动,并将此新实例放在活动堆栈的顶部

因此,您的活动堆栈如下所示:

  • 新建地图活动
  • 列表活动
  • 旧版地图活动
如果我是对的,那么从这个“新”地图活动中按back将使您返回到列表活动。再次按back将使您返回到原始地图活动(您正在寻找的活动)

因此,当您在列表活动中时,您不需要启动新的映射活动,只需完成该活动即可

查看此文档以进一步了解意图标志:

在您的清单中将Map活动的启动模式声明为singleInstance。然后我想您会没事的。从


仅允许此活动的一个实例一直在运行。此活动获取一个唯一的任务,其中只有其自身在运行;如果再次以相同的目的启动该任务,则该任务将被向前推进,其活动。onNewIntent()方法。如果此活动尝试启动一个新活动,则该新活动将在单独的任务中启动。有关任务的详细信息,请参阅任务和后台堆栈文档。

在清单中,将映射活动的启动模式声明为singleInstance。然后我认为您可以。从


仅允许此活动的一个实例一直在运行。此活动获取一个唯一的任务,其中只有其自身在运行;如果再次以相同的目的启动该任务,则该任务将被向前推进,其活动。onNewIntent()方法调用。如果此活动尝试启动一个新活动,则该新活动将在单独的任务中启动。有关任务的详细信息,请参阅“任务和后台堆栈”文档。

如何在不启动的情况下进入映射活动?据我所知,您是从映射活动启动列表活动的。因此,如果关闭列表活动y-通过调用finish(),您将返回到原始的地图活动。哦,我现在就来试一试。好的,一个问题,如果我是2(或多个),该怎么办远离地图活动的活动?假设我在列表活动中,我按下一个列表项将打开另一个活动。如何在不重新启动的情况下返回地图?仅尝试完成()它可以工作,但现在我需要能够在深入研究应用程序后完成。如何在不启动地图活动的情况下进入地图活动?据我所知,您是从地图活动开始列表活动的。因此,如果您关闭列表活动,请调用finish(),您将返回到原始地图活动。哦,我现在试一试。好的,一个问题,如果我离地图活动还有2个(或多个)活动,该怎么办?假设我在列表活动中,我按一个列表项将打开另一个活动。我如何在不重新启动的情况下返回地图?请尝试完成()它是有效的,但现在我需要在深入研究应用程序后才能这样做。请更具体一些。什么是地图活动?它的子类是什么Android类?它是否包含onPause()和onResume(),您是否对它们进行了编码,以便类保存和恢复其状态?还有,什么活动正在控制菜单本身?尝试从flag flag_Activity_NEW_TASK开始。让我知道它是否有效,我很感兴趣。我尝试了Intent I=NEW Intent(此,MapActivity.class);I.addFlags(Intent.flag_Activity_NEW_TASK);不起作用。请更具体一点。什么是“地图”活动?它的子类是什么Android类?它是否包含onPause()和onResume(),您是否对它们进行了编码,以便类保存和恢复其状态?还有,什么活动正在控制菜单本身?尝试从flag flag_Activity_NEW_TASK开始。让我知道它是否有效,我很感兴趣。我尝试了Intent I=NEW Intent(此,MapActivity.class);I.addFlags(Intent.flag_Activity_NEW_TASK);不起作用。我可以为所有活动都这样做吗?你这是什么意思?请澄清一点