Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MapActivity的3个实例_Android_Api_Maps_Instance - Fatal编程技术网

Android MapActivity的3个实例

Android MapActivity的3个实例,android,api,maps,instance,Android,Api,Maps,Instance,它在Maps API中明确指出,每个进程只允许一个映射活动。 我的问题是我需要3个,它不一定是3个活动,但它是3个实例。 我创建了一个Travel agent应用程序,允许您预订酒店和活动。请关注一下我的应用程序的hotels功能,当您搜索酒店时,您自然可以看到地图上的所有内容,这是我需要的MapActivity的第一个实例,用于显示所有酒店。 如果从ListActivity或MapActivity中选择hotel,则可以在HotelInfo活动中查看该酒店的信息。HotelInfo活动还引用了

它在Maps API中明确指出,每个进程只允许一个映射活动。 我的问题是我需要3个,它不一定是3个活动,但它是3个实例。 我创建了一个Travel agent应用程序,允许您预订酒店和活动。请关注一下我的应用程序的hotels功能,当您搜索酒店时,您自然可以看到地图上的所有内容,这是我需要的MapActivity的第一个实例,用于显示所有酒店。 如果从ListActivity或MapActivity中选择hotel,则可以在HotelInfo活动中查看该酒店的信息。HotelInfo活动还引用了MapActivity,它可以让您在地图上看到特定的酒店,而无需任何其他酒店。。。。(下一步将是向该功能添加路线,但该功能尚未开发)

在执行以下场景时会发生错误:

  • 您可以输入所有酒店的地图
  • 你进入酒店信息系统
  • 从HotelInfo活动进入MapActivity,可以在地图上看到酒店(我启动相同的活动,但目的是使用MapActivity检测到的不同数据)
  • 到目前为止,一切都很好
  • 我按back两次(返回HotelInfo活动,然后返回所有酒店的地图活动)
  • 我看到了之前的(单人酒店)地图活动
  • 有没有办法解决这个问题?很好,我在活动堆栈上有两个活动实例,这样我就可以导航回每个实例,但如何防止它们将状态从一个实例传递到另一个实例呢

    (顺便说一句,第三种情况是,在你预订了酒店之后,你可以在地图上看到它,但出于某种原因,我在那里没有问题)

    有没有办法解决这个问题


    如文档所述,只有一个
    MapActivity
    。对于所描述的场景,不需要多个
    MapActivity
    。根据用户交互(例如图标点击和后退按钮)更改覆盖图和地图中心/缩放级别。

    基本上我让android为我做,我在应用程序中有一个MyMapActivity。我确实是从包含不同值的意图开始的,对于这些不同的值,覆盖层被填充并添加到地图中。我的问题是,当我恢复已使用的MyMapActivity时,它会加载以前的地图显示,即使该MyMapActivityInstance已被OnDestroy破坏。我现在正在检查是否将一些代码移动到onResume而不是onCreate上可以解决我的问题。我会接受答案,尽管它没有说明任何新的内容。。。我已经将添加覆盖并将缩放和贴图中心设置为onResume函数的代码移动到了onResume函数中,这就解决了我的问题,问题是MapActivity为保存网络操作而进行的缓存,即使我恢复了旧实例,MapActivity也会从Activities存储中获取最新的分幅。如果你问我,谷歌的不良行为…@codeScriber:
    MapActivity
    有记录的限制。您阅读了文档,忽略了它,因此您的代码无法正常工作。如果您不希望遵守此限制,请随意使用其他地图实现(例如,开放街道地图)。理想情况下,一个应用程序可以有多个
    MapActivity
    实例。理想情况下,我会有更多的头发。我们并不是生活在一个理想的世界里,我秃顶的脑袋可以证明这一点。我同意,但是我有一个规范要完成,并且使用你的方法(意味着每当我启动地图活动时,使用SINGLE_TOP flag),我会在活动堆栈中释放活动(因为它会被带到最前面),所以基本上你所说的我不能应用于我的规范。你是对的,这不是一个完美的世界,从来都不是,但因为谷歌地图应用程序确实有这个功能是的,我认为这是他们的坏行为,而且我只有一个MapActivity,但有多个实例,在我看来,创建另一个进程来承载多个实例是可怕的。