Marker未实现Parcelable
,Serializable
接口,但我需要在活动onPause
/ onResume
之间保留它,那么我该如何坚持它?我如何获得所有当前的标记列表(在任何地方找不到getMarkers()方法?)
想象一下下一个案例:我已添加Marker
并启动AsyncTask
以执行标记的长期运行任务和更新视图。任务正在进行中,我改变方向,重新创建活动。任务完成后如何更新该标记?让我们想象一下,我可以坚持标记的id和标记通过片段自动保存(只是想象),然后我怎样才能在重新创建活动后使用id找到它?
答案 0 :(得分:10)
您可以保留MarkerOptions
个对象,因为它们是Parcelable
,然后从中重新创建Marker
个对象。
答案 1 :(得分:4)
Marker
不属于“UI状态”,因此不应在配置更改时保存/恢复。
在配置更改时,您只需使用与第一次显示Marker
时填充的完全相同的代码重新创建所有GoogleMap
。
如果你真的想坚持下去(从我的观点来看这是一个非常糟糕的主意),这仍然可以通过onSaveInstance(Bundle outState)
答案 2 :(得分:3)
答案 3 :(得分:1)
标记对象(适用于Android谷歌地图)现在支持使用Marker.setTag()
使用标记存储任意数据对象,并使用Marker.getTag()
检索数据对象。
例如,这允许跟踪特定标记上的点击次数。或者,存储其他数据,然后可以在自定义InfoWindow
中显示。
请参阅Marker Data.