6

Marker没有实现ParcelableSerializable接口,但我需要在 Activity onPause/之间持久化它onResume,那么我该如何持久化它呢?如何获取所有当前标记列表(在任何地方都找不到 getMarkers() 方法)?

想象下一个案例:我已经添加Marker并开始AsyncTask执行长时间运行的任务并更新标记的视图。任务正在进行中,我改变方向,重新创建活动。任务完成后如何更新该标记?假设我可以保留标记的 id 并且标记由片段自动保存(想象一下),那么在重新创建活动后如何使用 id 找到它?

4

4 回答 4

10

您可以保留MarkerOptions对象,因为它们是Parcelable,然后Marker从它们重新创建对象。

于 2013-04-11T13:18:10.147 回答
4

Markers 不是“UI 状态”的一部分,因此不应在配置更改时保存/恢复。

在配置更改时,您只需使用与第一次显示时Marker填充的完全相同的代码重新创建所有 s 。GoogleMap

如果您真的想保留它们(从我的角度来看这是一个非常糟糕的主意),仍然可以通过手动执行onSaveInstance(Bundle outState)


编辑:请参阅“深入了解 Android 状态恢复”

于 2012-12-11T09:05:21.347 回答
3

现在似乎没有办法做到这一点:http ://code.google.com/p/gmaps-api-issues/issues/detail?id=4650

于 2012-12-11T08:52:09.307 回答
1

标记对象(用于 Android 谷歌地图)现在支持使用标记存储任意数据对象Marker.setTag(),并使用 检索数据对象Marker.getTag()

例如,这允许跟踪特定标记上的点击计数。或者,存储其他数据,然后可以在自定义InfoWindow.

请参阅标记数据。

于 2017-01-21T19:57:27.657 回答