所以在我的主要活动中,我实例化了一个GoogleMap对象。
点击按钮,在我的下一个Acivity中,我还有一个GoogleMap对象。
我想知道是否可以使用相同的对象,而不必创建新的GoogleMap对象并再次进行适当的设置。
基本上我不想在两个不同的活动中两次做同样的事情,并且会影响性能。
我知道可以通过意图,附加内容,捆绑等方式移动数据,但我无法找到有关GoogleMaps或传递实际非字符串化对象的信息。
干杯。
答案 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,但我已成功在方向更改之间重复使用,以避免重新加载所有标记,设置目标位置,缩放级别等。