是否可以将Google Map对象从一个活动移动到另一个活动?

时间:2014-08-27 01:08:14

标签: android google-maps android-activity android-fragments

所以在我的主要活动中,我实例化了一个GoogleMap对象。

点击按钮,在我的下一个Acivity中,我还有一个GoogleMap对象。

我想知道是否可以使用相同的对象,而不必创建新的GoogleMap对象并再次进行适当的设置。

基本上我不想在两个不同的活动中两次做同样的事情,并且会影响性​​能。

我知道可以通过意图,附加内容,捆绑等方式移动数据,但我无法找到有关GoogleMaps或传递实际非字符串化对象的信息。

干杯。

2 个答案:

答案 0 :(得分:2)

即使您可以将对象传递给另一个活动,您还需要在第二个活动中使用另一个map xml实例,该实例将引用谷歌地图对象。另一个解决方案是拥有一个静态的地图对象,这不是一个好习惯,我不推荐它。

答案 1 :(得分:1)

我认为您可以避免使用https://github.com/greenrobot/EventBus

序列化对象的所有麻烦

使用EventBus,您应该可以执行以下操作:

Activity A {
    GoogleMap mMap;
    ...
    // just before moving to next Activity
    EventBus.getDefault().postSticky(map);
}

Activity B {
    GoogleMap mMap;

    void onCreate() {
        mMap = EventBus.getDefault().getStickyEvent(GoogleMap.class);
    }
}

它不仅更简单,它实际上优于任何其他替代品,如parcelable等。

我必须承认,我不需要跨活动重复使用GoogleMap,但我已成功在方向更改之间重复使用,以避免重新加载所有标记,设置目标位置,缩放级别等。